!function (t, e) {
  if ("object" == typeof exports && "object" == typeof module) module.exports = e();else if ("function" == typeof define && define.amd) define([], e);else {
    var r = e();

    for (var n in r) ("object" == typeof exports ? exports : t)[n] = r[n];
  }
}(window, function () {
  return function (t) {
    var e = {};

    function r(n) {
      if (e[n]) return e[n].exports;
      var o = e[n] = {
        i: n,
        l: !1,
        exports: {}
      };
      return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;
    }

    return r.m = t, r.c = e, r.d = function (t, e, n) {
      r.o(t, e) || Object.defineProperty(t, e, {
        enumerable: !0,
        get: n
      });
    }, r.r = function (t) {
      "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
        value: "Module"
      }), Object.defineProperty(t, "__esModule", {
        value: !0
      });
    }, r.t = function (t, e) {
      if (1 & e && (t = r(t)), 8 & e) return t;
      if (4 & e && "object" == typeof t && t && t.__esModule) return t;
      var n = Object.create(null);
      if (r.r(n), Object.defineProperty(n, "default", {
        enumerable: !0,
        value: t
      }), 2 & e && "string" != typeof t) for (var o in t) r.d(n, o, function (e) {
        return t[e];
      }.bind(null, o));
      return n;
    }, r.n = function (t) {
      var e = t && t.__esModule ? function () {
        return t.default;
      } : function () {
        return t;
      };
      return r.d(e, "a", e), e;
    }, r.o = function (t, e) {
      return Object.prototype.hasOwnProperty.call(t, e);
    }, r.p = "", r(r.s = 24);
  }([function (t, e) {
    t.exports = function () {
      return function () {};
    };
  }, function (t, e) {
    var r;

    r = function () {
      return this;
    }();

    try {
      r = r || Function("return this")() || (0, eval)("this");
    } catch (t) {
      "object" == typeof window && (r = window);
    }

    t.exports = r;
  }, function (t, e) {
    var r = {}.toString;

    t.exports = Array.isArray || function (t) {
      return "[object Array]" == r.call(t);
    };
  }, function (t, e, r) {
    function n(t) {
      if (t) return function (t) {
        for (var e in n.prototype) t[e] = n.prototype[e];

        return t;
      }(t);
    }

    t.exports = n, n.prototype.on = n.prototype.addEventListener = function (t, e) {
      return this._callbacks = this._callbacks || {}, (this._callbacks["$" + t] = this._callbacks["$" + t] || []).push(e), this;
    }, n.prototype.once = function (t, e) {
      function r() {
        this.off(t, r), e.apply(this, arguments);
      }

      return r.fn = e, this.on(t, r), this;
    }, n.prototype.off = n.prototype.removeListener = n.prototype.removeAllListeners = n.prototype.removeEventListener = function (t, e) {
      if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;
      var r,
          n = this._callbacks["$" + t];
      if (!n) return this;
      if (1 == arguments.length) return delete this._callbacks["$" + t], this;

      for (var o = 0; o < n.length; o++) if ((r = n[o]) === e || r.fn === e) {
        n.splice(o, 1);
        break;
      }

      return this;
    }, n.prototype.emit = function (t) {
      this._callbacks = this._callbacks || {};
      var e = [].slice.call(arguments, 1),
          r = this._callbacks["$" + t];
      if (r) for (var n = 0, o = (r = r.slice(0)).length; n < o; ++n) r[n].apply(this, e);
      return this;
    }, n.prototype.listeners = function (t) {
      return this._callbacks = this._callbacks || {}, this._callbacks["$" + t] || [];
    }, n.prototype.hasListeners = function (t) {
      return !!this.listeners(t).length;
    };
  }, function (t, e, r) {
    var n = r(0)("socket.io-parser"),
        o = r(3),
        i = r(20),
        s = r(2),
        a = r(9);

    function u() {}

    e.protocol = 4, e.types = ["CONNECT", "DISCONNECT", "EVENT", "ACK", "ERROR", "BINARY_EVENT", "BINARY_ACK"], e.CONNECT = 0, e.DISCONNECT = 1, e.EVENT = 2, e.ACK = 3, e.ERROR = 4, e.BINARY_EVENT = 5, e.BINARY_ACK = 6, e.Encoder = u, e.Decoder = h;
    var c = e.ERROR + '"encode error"';

    function f(t) {
      var r = "" + t.type;

      if (e.BINARY_EVENT !== t.type && e.BINARY_ACK !== t.type || (r += t.attachments + "-"), t.nsp && "/" !== t.nsp && (r += t.nsp + ","), null != t.id && (r += t.id), null != t.data) {
        var o = function (t) {
          try {
            return JSON.stringify(t);
          } catch (t) {
            return !1;
          }
        }(t.data);

        if (!1 === o) return c;
        r += o;
      }

      return n("encoded %j as %s", t, r), r;
    }

    function h() {
      this.reconstructor = null;
    }

    function p(t) {
      this.reconPack = t, this.buffers = [];
    }

    function l(t) {
      return {
        type: e.ERROR,
        data: "parser error: " + t
      };
    }

    u.prototype.encode = function (t, r) {
      (n("encoding packet %j", t), e.BINARY_EVENT === t.type || e.BINARY_ACK === t.type) ? function (t, e) {
        i.removeBlobs(t, function (t) {
          var r = i.deconstructPacket(t),
              n = f(r.packet),
              o = r.buffers;
          o.unshift(n), e(o);
        });
      }(t, r) : r([f(t)]);
    }, o(h.prototype), h.prototype.add = function (t) {
      var r;
      if ("string" == typeof t) r = function (t) {
        var r = 0,
            o = {
          type: Number(t.charAt(0))
        };
        if (null == e.types[o.type]) return l("unknown packet type " + o.type);

        if (e.BINARY_EVENT === o.type || e.BINARY_ACK === o.type) {
          for (var i = ""; "-" !== t.charAt(++r) && (i += t.charAt(r), r != t.length););

          if (i != Number(i) || "-" !== t.charAt(r)) throw new Error("Illegal attachments");
          o.attachments = Number(i);
        }

        if ("/" === t.charAt(r + 1)) for (o.nsp = ""; ++r;) {
          var a = t.charAt(r);
          if ("," === a) break;
          if (o.nsp += a, r === t.length) break;
        } else o.nsp = "/";
        var u = t.charAt(r + 1);

        if ("" !== u && Number(u) == u) {
          for (o.id = ""; ++r;) {
            var a = t.charAt(r);

            if (null == a || Number(a) != a) {
              --r;
              break;
            }

            if (o.id += t.charAt(r), r === t.length) break;
          }

          o.id = Number(o.id);
        }

        if (t.charAt(++r)) {
          var c = function (t) {
            try {
              return JSON.parse(t);
            } catch (t) {
              return !1;
            }
          }(t.substr(r)),
              f = !1 !== c && (o.type === e.ERROR || s(c));

          if (!f) return l("invalid payload");
          o.data = c;
        }

        return n("decoded %s as %j", t, o), o;
      }(t), e.BINARY_EVENT === r.type || e.BINARY_ACK === r.type ? (this.reconstructor = new p(r), 0 === this.reconstructor.reconPack.attachments && this.emit("decoded", r)) : this.emit("decoded", r);else {
        if (!a(t) && !t.base64) throw new Error("Unknown type: " + t);
        if (!this.reconstructor) throw new Error("got binary data when not reconstructing a packet");
        (r = this.reconstructor.takeBinaryData(t)) && (this.reconstructor = null, this.emit("decoded", r));
      }
    }, h.prototype.destroy = function () {
      this.reconstructor && this.reconstructor.finishedReconstruction();
    }, p.prototype.takeBinaryData = function (t) {
      if (this.buffers.push(t), this.buffers.length === this.reconPack.attachments) {
        var e = i.reconstructPacket(this.reconPack, this.buffers);
        return this.finishedReconstruction(), e;
      }

      return null;
    }, p.prototype.finishedReconstruction = function () {
      this.reconPack = null, this.buffers = [];
    };
  }, function (t, e) {
    var r = [].slice;

    t.exports = function (t, e) {
      if ("string" == typeof e && (e = t[e]), "function" != typeof e) throw new Error("bind() requires a function");
      var n = r.call(arguments, 2);
      return function () {
        return e.apply(t, n.concat(r.call(arguments)));
      };
    };
  }, function (t, e) {
    t.exports = function (t, e, r) {
      return t.on(e, r), {
        destroy: function () {
          t.removeListener(e, r);
        }
      };
    };
  }, function (t, e, r) {
    var n = r(4),
        o = r(3),
        i = r(18),
        s = r(6),
        a = r(5),
        u = r(0)("socket.io-client:socket"),
        c = r(17),
        f = r(16);
    t.exports = l;
    var h = {
      connect: 1,
      connect_error: 1,
      connect_timeout: 1,
      connecting: 1,
      disconnect: 1,
      error: 1,
      reconnect: 1,
      reconnect_attempt: 1,
      reconnect_failed: 1,
      reconnect_error: 1,
      reconnecting: 1,
      ping: 1,
      pong: 1
    },
        p = o.prototype.emit;

    function l(t, e, r) {
      this.io = t, this.nsp = e, this.json = this, this.ids = 0, this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0, this.flags = {}, r && r.query && (this.query = r.query), this.io.autoConnect && this.open();
    }

    o(l.prototype), l.prototype.subEvents = function () {
      if (!this.subs) {
        var t = this.io;
        this.subs = [s(t, "open", a(this, "onopen")), s(t, "packet", a(this, "onpacket")), s(t, "close", a(this, "onclose"))];
      }
    }, l.prototype.open = l.prototype.connect = function () {
      return this.connected ? this : (this.subEvents(), this.io.open(), "open" === this.io.readyState && this.onopen(), this.emit("connecting"), this);
    }, l.prototype.send = function () {
      var t = i(arguments);
      return t.unshift("message"), this.emit.apply(this, t), this;
    }, l.prototype.emit = function (t) {
      if (h.hasOwnProperty(t)) return p.apply(this, arguments), this;
      var e = i(arguments),
          r = {
        type: (void 0 !== this.flags.binary ? this.flags.binary : f(e)) ? n.BINARY_EVENT : n.EVENT,
        data: e,
        options: {}
      };
      return r.options.compress = !this.flags || !1 !== this.flags.compress, "function" == typeof e[e.length - 1] && (u("emitting packet with ack id %d", this.ids), this.acks[this.ids] = e.pop(), r.id = this.ids++), this.connected ? this.packet(r) : this.sendBuffer.push(r), this.flags = {}, this;
    }, l.prototype.packet = function (t) {
      t.nsp = this.nsp, this.io.packet(t);
    }, l.prototype.onopen = function () {
      if (u("transport is open - connecting"), "/" !== this.nsp) if (this.query) {
        var t = "object" == typeof this.query ? c.encode(this.query) : this.query;
        u("sending connect packet with query %s", t), this.packet({
          type: n.CONNECT,
          query: t
        });
      } else this.packet({
        type: n.CONNECT
      });
    }, l.prototype.onclose = function (t) {
      u("close (%s)", t), this.connected = !1, this.disconnected = !0, delete this.id, this.emit("disconnect", t);
    }, l.prototype.onpacket = function (t) {
      var e = t.nsp === this.nsp,
          r = t.type === n.ERROR && "/" === t.nsp;
      if (e || r) switch (t.type) {
        case n.CONNECT:
          this.onconnect();
          break;

        case n.EVENT:
        case n.BINARY_EVENT:
          this.onevent(t);
          break;

        case n.ACK:
        case n.BINARY_ACK:
          this.onack(t);
          break;

        case n.DISCONNECT:
          this.ondisconnect();
          break;

        case n.ERROR:
          this.emit("error", t.data);
      }
    }, l.prototype.onevent = function (t) {
      var e = t.data || [];
      u("emitting event %j", e), null != t.id && (u("attaching ack callback to event"), e.push(this.ack(t.id))), this.connected ? p.apply(this, e) : this.receiveBuffer.push(e);
    }, l.prototype.ack = function (t) {
      var e = this,
          r = !1;
      return function () {
        if (!r) {
          r = !0;
          var o = i(arguments);
          u("sending ack %j", o), e.packet({
            type: f(o) ? n.BINARY_ACK : n.ACK,
            id: t,
            data: o
          });
        }
      };
    }, l.prototype.onack = function (t) {
      var e = this.acks[t.id];
      "function" == typeof e ? (u("calling ack %s with %j", t.id, t.data), e.apply(this, t.data), delete this.acks[t.id]) : u("bad ack %s", t.id);
    }, l.prototype.onconnect = function () {
      this.connected = !0, this.disconnected = !1, this.emit("connect"), this.emitBuffered();
    }, l.prototype.emitBuffered = function () {
      var t;

      for (t = 0; t < this.receiveBuffer.length; t++) p.apply(this, this.receiveBuffer[t]);

      for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);

      this.sendBuffer = [];
    }, l.prototype.ondisconnect = function () {
      u("server disconnect (%s)", this.nsp), this.destroy(), this.onclose("io server disconnect");
    }, l.prototype.destroy = function () {
      if (this.subs) {
        for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();

        this.subs = null;
      }

      this.io.destroy(this);
    }, l.prototype.close = l.prototype.disconnect = function () {
      return this.connected && (u("performing disconnect (%s)", this.nsp), this.packet({
        type: n.DISCONNECT
      })), this.destroy(), this.connected && this.onclose("io client disconnect"), this;
    }, l.prototype.compress = function (t) {
      return this.flags.compress = t, this;
    }, l.prototype.binary = function (t) {
      return this.flags.binary = t, this;
    };
  }, function (t, e, r) {
    var n = r(19),
        o = r(7),
        i = r(3),
        s = r(4),
        a = r(6),
        u = r(5),
        c = r(0)("socket.io-client:manager"),
        f = r(11),
        h = r(10),
        p = Object.prototype.hasOwnProperty;

    function l(t, e) {
      if (!(this instanceof l)) return new l(t, e);
      t && "object" == typeof t && (e = t, t = void 0), (e = e || {}).path = e.path || "/socket.io", this.nsps = {}, this.subs = [], this.opts = e, this.reconnection(!1 !== e.reconnection), this.reconnectionAttempts(e.reconnectionAttempts || 1 / 0), this.reconnectionDelay(e.reconnectionDelay || 1e3), this.reconnectionDelayMax(e.reconnectionDelayMax || 5e3), this.randomizationFactor(e.randomizationFactor || .5), this.backoff = new h({
        min: this.reconnectionDelay(),
        max: this.reconnectionDelayMax(),
        jitter: this.randomizationFactor()
      }), this.timeout(null == e.timeout ? 2e4 : e.timeout), this.readyState = "closed", this.uri = t, this.connecting = [], this.lastPing = null, this.encoding = !1, this.packetBuffer = [];
      var r = e.parser || s;
      this.encoder = new r.Encoder(), this.decoder = new r.Decoder(), this.autoConnect = !1 !== e.autoConnect, this.autoConnect && this.open();
    }

    t.exports = l, l.prototype.emitAll = function () {
      for (var t in this.emit.apply(this, arguments), this.nsps) p.call(this.nsps, t) && this.nsps[t].emit.apply(this.nsps[t], arguments);
    }, l.prototype.updateSocketIds = function () {
      for (var t in this.nsps) p.call(this.nsps, t) && (this.nsps[t].id = this.generateId(t));
    }, l.prototype.generateId = function (t) {
      return ("/" === t ? "" : t + "#") + this.engine.id;
    }, i(l.prototype), l.prototype.reconnection = function (t) {
      return arguments.length ? (this._reconnection = !!t, this) : this._reconnection;
    }, l.prototype.reconnectionAttempts = function (t) {
      return arguments.length ? (this._reconnectionAttempts = t, this) : this._reconnectionAttempts;
    }, l.prototype.reconnectionDelay = function (t) {
      return arguments.length ? (this._reconnectionDelay = t, this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay;
    }, l.prototype.randomizationFactor = function (t) {
      return arguments.length ? (this._randomizationFactor = t, this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor;
    }, l.prototype.reconnectionDelayMax = function (t) {
      return arguments.length ? (this._reconnectionDelayMax = t, this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax;
    }, l.prototype.timeout = function (t) {
      return arguments.length ? (this._timeout = t, this) : this._timeout;
    }, l.prototype.maybeReconnectOnOpen = function () {
      !this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect();
    }, l.prototype.open = l.prototype.connect = function (t, e) {
      if (c("readyState %s", this.readyState), ~this.readyState.indexOf("open")) return this;
      c("opening %s", this.uri), this.engine = n(this.uri, this.opts);
      var r = this.engine,
          o = this;
      this.readyState = "opening", this.skipReconnect = !1;
      var i = a(r, "open", function () {
        o.onopen(), t && t();
      }),
          s = a(r, "error", function (e) {
        if (c("connect_error"), o.cleanup(), o.readyState = "closed", o.emitAll("connect_error", e), t) {
          var r = new Error("Connection error");
          r.data = e, t(r);
        } else o.maybeReconnectOnOpen();
      });

      if (!1 !== this._timeout) {
        var u = this._timeout;
        c("connect attempt will timeout after %d", u);
        var f = setTimeout(function () {
          c("connect attempt timed out after %d", u), i.destroy(), r.close(), r.emit("error", "timeout"), o.emitAll("connect_timeout", u);
        }, u);
        this.subs.push({
          destroy: function () {
            clearTimeout(f);
          }
        });
      }

      return this.subs.push(i), this.subs.push(s), this;
    }, l.prototype.onopen = function () {
      c("open"), this.cleanup(), this.readyState = "open", this.emit("open");
      var t = this.engine;
      this.subs.push(a(t, "data", u(this, "ondata"))), this.subs.push(a(t, "ping", u(this, "onping"))), this.subs.push(a(t, "pong", u(this, "onpong"))), this.subs.push(a(t, "error", u(this, "onerror"))), this.subs.push(a(t, "close", u(this, "onclose"))), this.subs.push(a(this.decoder, "decoded", u(this, "ondecoded")));
    }, l.prototype.onping = function () {
      this.lastPing = new Date(), this.emitAll("ping");
    }, l.prototype.onpong = function () {
      this.emitAll("pong", new Date() - this.lastPing);
    }, l.prototype.ondata = function (t) {
      this.decoder.add(t);
    }, l.prototype.ondecoded = function (t) {
      this.emit("packet", t);
    }, l.prototype.onerror = function (t) {
      c("error", t), this.emitAll("error", t);
    }, l.prototype.socket = function (t, e) {
      var r = this.nsps[t];

      if (!r) {
        r = new o(this, t, e), this.nsps[t] = r;
        var n = this;
        r.on("connecting", i), r.on("connect", function () {
          r.id = n.generateId(t);
        }), this.autoConnect && i();
      }

      function i() {
        ~f(n.connecting, r) || n.connecting.push(r);
      }

      return r;
    }, l.prototype.destroy = function (t) {
      var e = f(this.connecting, t);
      ~e && this.connecting.splice(e, 1), this.connecting.length || this.close();
    }, l.prototype.packet = function (t) {
      c("writing packet %j", t);
      var e = this;
      t.query && 0 === t.type && (t.nsp += "?" + t.query), e.encoding ? e.packetBuffer.push(t) : (e.encoding = !0, this.encoder.encode(t, function (r) {
        for (var n = 0; n < r.length; n++) e.engine.write(r[n], t.options);

        e.encoding = !1, e.processPacketQueue();
      }));
    }, l.prototype.processPacketQueue = function () {
      if (this.packetBuffer.length > 0 && !this.encoding) {
        var t = this.packetBuffer.shift();
        this.packet(t);
      }
    }, l.prototype.cleanup = function () {
      c("cleanup");

      for (var t = this.subs.length, e = 0; e < t; e++) {
        this.subs.shift().destroy();
      }

      this.packetBuffer = [], this.encoding = !1, this.lastPing = null, this.decoder.destroy();
    }, l.prototype.close = l.prototype.disconnect = function () {
      c("disconnect"), this.skipReconnect = !0, this.reconnecting = !1, "opening" === this.readyState && this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.engine && this.engine.close();
    }, l.prototype.onclose = function (t) {
      c("onclose"), this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.emit("close", t), this._reconnection && !this.skipReconnect && this.reconnect();
    }, l.prototype.reconnect = function () {
      if (this.reconnecting || this.skipReconnect) return this;
      var t = this;
      if (this.backoff.attempts >= this._reconnectionAttempts) c("reconnect failed"), this.backoff.reset(), this.emitAll("reconnect_failed"), this.reconnecting = !1;else {
        var e = this.backoff.duration();
        c("will wait %dms before reconnect attempt", e), this.reconnecting = !0;
        var r = setTimeout(function () {
          t.skipReconnect || (c("attempting reconnect"), t.emitAll("reconnect_attempt", t.backoff.attempts), t.emitAll("reconnecting", t.backoff.attempts), t.skipReconnect || t.open(function (e) {
            e ? (c("reconnect attempt error"), t.reconnecting = !1, t.reconnect(), t.emitAll("reconnect_error", e.data)) : (c("reconnect success"), t.onreconnect());
          }));
        }, e);
        this.subs.push({
          destroy: function () {
            clearTimeout(r);
          }
        });
      }
    }, l.prototype.onreconnect = function () {
      var t = this.backoff.attempts;
      this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll("reconnect", t);
    };
  }, function (t, e, r) {
    (function (e) {
      t.exports = function (t) {
        return r && e.Buffer.isBuffer(t) || n && (t instanceof e.ArrayBuffer || o(t));
      };

      var r = "function" == typeof e.Buffer && "function" == typeof e.Buffer.isBuffer,
          n = "function" == typeof e.ArrayBuffer,
          o = n && "function" == typeof e.ArrayBuffer.isView ? e.ArrayBuffer.isView : function (t) {
        return t.buffer instanceof e.ArrayBuffer;
      };
    }).call(this, r(1));
  }, function (t, e) {
    function r(t) {
      t = t || {}, this.ms = t.min || 100, this.max = t.max || 1e4, this.factor = t.factor || 2, this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0;
    }

    t.exports = r, r.prototype.duration = function () {
      var t = this.ms * Math.pow(this.factor, this.attempts++);

      if (this.jitter) {
        var e = Math.random(),
            r = Math.floor(e * this.jitter * t);
        t = 0 == (1 & Math.floor(10 * e)) ? t - r : t + r;
      }

      return 0 | Math.min(t, this.max);
    }, r.prototype.reset = function () {
      this.attempts = 0;
    }, r.prototype.setMin = function (t) {
      this.ms = t;
    }, r.prototype.setMax = function (t) {
      this.max = t;
    }, r.prototype.setJitter = function (t) {
      this.jitter = t;
    };
  }, function (t, e) {
    var r = [].indexOf;

    t.exports = function (t, e) {
      if (r) return t.indexOf(e);

      for (var n = 0; n < t.length; ++n) if (t[n] === e) return n;

      return -1;
    };
  }, function (t, e) {
    var r = {}.toString;

    t.exports = Array.isArray || function (t) {
      return "[object Array]" == r.call(t);
    };
  }, function (t, e) {
    e.read = function (t, e, r, n, o) {
      var i,
          s,
          a = 8 * o - n - 1,
          u = (1 << a) - 1,
          c = u >> 1,
          f = -7,
          h = r ? o - 1 : 0,
          p = r ? -1 : 1,
          l = t[e + h];

      for (h += p, i = l & (1 << -f) - 1, l >>= -f, f += a; f > 0; i = 256 * i + t[e + h], h += p, f -= 8);

      for (s = i & (1 << -f) - 1, i >>= -f, f += n; f > 0; s = 256 * s + t[e + h], h += p, f -= 8);

      if (0 === i) i = 1 - c;else {
        if (i === u) return s ? NaN : 1 / 0 * (l ? -1 : 1);
        s += Math.pow(2, n), i -= c;
      }
      return (l ? -1 : 1) * s * Math.pow(2, i - n);
    }, e.write = function (t, e, r, n, o, i) {
      var s,
          a,
          u,
          c = 8 * i - o - 1,
          f = (1 << c) - 1,
          h = f >> 1,
          p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
          l = n ? 0 : i - 1,
          d = n ? 1 : -1,
          y = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;

      for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, s = f) : (s = Math.floor(Math.log(e) / Math.LN2), e * (u = Math.pow(2, -s)) < 1 && (s--, u *= 2), (e += s + h >= 1 ? p / u : p * Math.pow(2, 1 - h)) * u >= 2 && (s++, u /= 2), s + h >= f ? (a = 0, s = f) : s + h >= 1 ? (a = (e * u - 1) * Math.pow(2, o), s += h) : (a = e * Math.pow(2, h - 1) * Math.pow(2, o), s = 0)); o >= 8; t[r + l] = 255 & a, l += d, a /= 256, o -= 8);

      for (s = s << o | a, c += o; c > 0; t[r + l] = 255 & s, l += d, s /= 256, c -= 8);

      t[r + l - d] |= 128 * y;
    };
  }, function (t, e, r) {
    "use strict";

    e.byteLength = function (t) {
      var e = c(t),
          r = e[0],
          n = e[1];
      return 3 * (r + n) / 4 - n;
    }, e.toByteArray = function (t) {
      for (var e, r = c(t), n = r[0], s = r[1], a = new i(function (t, e, r) {
        return 3 * (e + r) / 4 - r;
      }(0, n, s)), u = 0, f = s > 0 ? n - 4 : n, h = 0; h < f; h += 4) e = o[t.charCodeAt(h)] << 18 | o[t.charCodeAt(h + 1)] << 12 | o[t.charCodeAt(h + 2)] << 6 | o[t.charCodeAt(h + 3)], a[u++] = e >> 16 & 255, a[u++] = e >> 8 & 255, a[u++] = 255 & e;

      2 === s && (e = o[t.charCodeAt(h)] << 2 | o[t.charCodeAt(h + 1)] >> 4, a[u++] = 255 & e);
      1 === s && (e = o[t.charCodeAt(h)] << 10 | o[t.charCodeAt(h + 1)] << 4 | o[t.charCodeAt(h + 2)] >> 2, a[u++] = e >> 8 & 255, a[u++] = 255 & e);
      return a;
    }, e.fromByteArray = function (t) {
      for (var e, r = t.length, o = r % 3, i = [], s = 0, a = r - o; s < a; s += 16383) i.push(f(t, s, s + 16383 > a ? a : s + 16383));

      1 === o ? (e = t[r - 1], i.push(n[e >> 2] + n[e << 4 & 63] + "==")) : 2 === o && (e = (t[r - 2] << 8) + t[r - 1], i.push(n[e >> 10] + n[e >> 4 & 63] + n[e << 2 & 63] + "="));
      return i.join("");
    };

    for (var n = [], o = [], i = "undefined" != typeof Uint8Array ? Uint8Array : Array, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, u = s.length; a < u; ++a) n[a] = s[a], o[s.charCodeAt(a)] = a;

    function c(t) {
      var e = t.length;
      if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
      var r = t.indexOf("=");
      return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4];
    }

    function f(t, e, r) {
      for (var o, i, s = [], a = e; a < r; a += 3) o = (t[a] << 16 & 16711680) + (t[a + 1] << 8 & 65280) + (255 & t[a + 2]), s.push(n[(i = o) >> 18 & 63] + n[i >> 12 & 63] + n[i >> 6 & 63] + n[63 & i]);

      return s.join("");
    }

    o["-".charCodeAt(0)] = 62, o["_".charCodeAt(0)] = 63;
  }, function (t, e, r) {
    "use strict";

    (function (t) {
      /*!
       * The buffer module from node.js, for the browser.
       *
       * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
       * @license  MIT
       */
      var n = r(14),
          o = r(13),
          i = r(12);

      function s() {
        return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
      }

      function a(t, e) {
        if (s() < e) throw new RangeError("Invalid typed array length");
        return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t;
      }

      function u(t, e, r) {
        if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);

        if ("number" == typeof t) {
          if ("string" == typeof e) throw new Error("If encoding is specified then the first argument must be a string");
          return h(this, t);
        }

        return c(this, t, e, r);
      }

      function c(t, e, r, n) {
        if ("number" == typeof e) throw new TypeError('"value" argument must not be a number');
        return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function (t, e, r, n) {
          if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError("'offset' is out of bounds");
          if (e.byteLength < r + (n || 0)) throw new RangeError("'length' is out of bounds");
          e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n);
          u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = p(t, e);
          return t;
        }(t, e, r, n) : "string" == typeof e ? function (t, e, r) {
          "string" == typeof r && "" !== r || (r = "utf8");
          if (!u.isEncoding(r)) throw new TypeError('"encoding" must be a valid string encoding');
          var n = 0 | d(e, r),
              o = (t = a(t, n)).write(e, r);
          o !== n && (t = t.slice(0, o));
          return t;
        }(t, e, r) : function (t, e) {
          if (u.isBuffer(e)) {
            var r = 0 | l(e.length);
            return 0 === (t = a(t, r)).length ? t : (e.copy(t, 0, 0, r), t);
          }

          if (e) {
            if ("undefined" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || "length" in e) return "number" != typeof e.length || (n = e.length) != n ? a(t, 0) : p(t, e);
            if ("Buffer" === e.type && i(e.data)) return p(t, e.data);
          }

          var n;
          throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");
        }(t, e);
      }

      function f(t) {
        if ("number" != typeof t) throw new TypeError('"size" argument must be a number');
        if (t < 0) throw new RangeError('"size" argument must not be negative');
      }

      function h(t, e) {
        if (f(e), t = a(t, e < 0 ? 0 : 0 | l(e)), !u.TYPED_ARRAY_SUPPORT) for (var r = 0; r < e; ++r) t[r] = 0;
        return t;
      }

      function p(t, e) {
        var r = e.length < 0 ? 0 : 0 | l(e.length);
        t = a(t, r);

        for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];

        return t;
      }

      function l(t) {
        if (t >= s()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + s().toString(16) + " bytes");
        return 0 | t;
      }

      function d(t, e) {
        if (u.isBuffer(t)) return t.length;
        if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;
        "string" != typeof t && (t = "" + t);
        var r = t.length;
        if (0 === r) return 0;

        for (var n = !1;;) switch (e) {
          case "ascii":
          case "latin1":
          case "binary":
            return r;

          case "utf8":
          case "utf-8":
          case void 0:
            return j(t).length;

          case "ucs2":
          case "ucs-2":
          case "utf16le":
          case "utf-16le":
            return 2 * r;

          case "hex":
            return r >>> 1;

          case "base64":
            return q(t).length;

          default:
            if (n) return j(t).length;
            e = ("" + e).toLowerCase(), n = !0;
        }
      }

      function y(t, e, r) {
        var n = t[e];
        t[e] = t[r], t[r] = n;
      }

      function g(t, e, r, n, o) {
        if (0 === t.length) return -1;

        if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = o ? 0 : t.length - 1), r < 0 && (r = t.length + r), r >= t.length) {
          if (o) return -1;
          r = t.length - 1;
        } else if (r < 0) {
          if (!o) return -1;
          r = 0;
        }

        if ("string" == typeof e && (e = u.from(e, n)), u.isBuffer(e)) return 0 === e.length ? -1 : v(t, e, r, n, o);
        if ("number" == typeof e) return e &= 255, u.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, r) : Uint8Array.prototype.lastIndexOf.call(t, e, r) : v(t, [e], r, n, o);
        throw new TypeError("val must be string, number or Buffer");
      }

      function v(t, e, r, n, o) {
        var i,
            s = 1,
            a = t.length,
            u = e.length;

        if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) {
          if (t.length < 2 || e.length < 2) return -1;
          s = 2, a /= 2, u /= 2, r /= 2;
        }

        function c(t, e) {
          return 1 === s ? t[e] : t.readUInt16BE(e * s);
        }

        if (o) {
          var f = -1;

          for (i = r; i < a; i++) if (c(t, i) === c(e, -1 === f ? 0 : i - f)) {
            if (-1 === f && (f = i), i - f + 1 === u) return f * s;
          } else -1 !== f && (i -= i - f), f = -1;
        } else for (r + u > a && (r = a - u), i = r; i >= 0; i--) {
          for (var h = !0, p = 0; p < u; p++) if (c(t, i + p) !== c(e, p)) {
            h = !1;
            break;
          }

          if (h) return i;
        }

        return -1;
      }

      function b(t, e, r, n) {
        r = Number(r) || 0;
        var o = t.length - r;
        n ? (n = Number(n)) > o && (n = o) : n = o;
        var i = e.length;
        if (i % 2 != 0) throw new TypeError("Invalid hex string");
        n > i / 2 && (n = i / 2);

        for (var s = 0; s < n; ++s) {
          var a = parseInt(e.substr(2 * s, 2), 16);
          if (isNaN(a)) return s;
          t[r + s] = a;
        }

        return s;
      }

      function m(t, e, r, n) {
        return F(j(e, t.length - r), t, r, n);
      }

      function w(t, e, r, n) {
        return F(function (t) {
          for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));

          return e;
        }(e), t, r, n);
      }

      function A(t, e, r, n) {
        return w(t, e, r, n);
      }

      function _(t, e, r, n) {
        return F(q(e), t, r, n);
      }

      function E(t, e, r, n) {
        return F(function (t, e) {
          for (var r, n, o, i = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) r = t.charCodeAt(s), n = r >> 8, o = r % 256, i.push(o), i.push(n);

          return i;
        }(e, t.length - r), t, r, n);
      }

      function k(t, e, r) {
        return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));
      }

      function B(t, e, r) {
        r = Math.min(t.length, r);

        for (var n = [], o = e; o < r;) {
          var i,
              s,
              a,
              u,
              c = t[o],
              f = null,
              h = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;
          if (o + h <= r) switch (h) {
            case 1:
              c < 128 && (f = c);
              break;

            case 2:
              128 == (192 & (i = t[o + 1])) && (u = (31 & c) << 6 | 63 & i) > 127 && (f = u);
              break;

            case 3:
              i = t[o + 1], s = t[o + 2], 128 == (192 & i) && 128 == (192 & s) && (u = (15 & c) << 12 | (63 & i) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (f = u);
              break;

            case 4:
              i = t[o + 1], s = t[o + 2], a = t[o + 3], 128 == (192 & i) && 128 == (192 & s) && 128 == (192 & a) && (u = (15 & c) << 18 | (63 & i) << 12 | (63 & s) << 6 | 63 & a) > 65535 && u < 1114112 && (f = u);
          }
          null === f ? (f = 65533, h = 1) : f > 65535 && (f -= 65536, n.push(f >>> 10 & 1023 | 55296), f = 56320 | 1023 & f), n.push(f), o += h;
        }

        return function (t) {
          var e = t.length;
          if (e <= R) return String.fromCharCode.apply(String, t);
          var r = "",
              n = 0;

          for (; n < e;) r += String.fromCharCode.apply(String, t.slice(n, n += R));

          return r;
        }(n);
      }

      e.Buffer = u, e.SlowBuffer = function (t) {
        +t != t && (t = 0);
        return u.alloc(+t);
      }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function () {
        try {
          var t = new Uint8Array(1);
          return t.__proto__ = {
            __proto__: Uint8Array.prototype,
            foo: function () {
              return 42;
            }
          }, 42 === t.foo() && "function" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;
        } catch (t) {
          return !1;
        }
      }(), e.kMaxLength = s(), u.poolSize = 8192, u._augment = function (t) {
        return t.__proto__ = u.prototype, t;
      }, u.from = function (t, e, r) {
        return c(null, t, e, r);
      }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, {
        value: null,
        configurable: !0
      })), u.alloc = function (t, e, r) {
        return function (t, e, r, n) {
          return f(e), e <= 0 ? a(t, e) : void 0 !== r ? "string" == typeof n ? a(t, e).fill(r, n) : a(t, e).fill(r) : a(t, e);
        }(null, t, e, r);
      }, u.allocUnsafe = function (t) {
        return h(null, t);
      }, u.allocUnsafeSlow = function (t) {
        return h(null, t);
      }, u.isBuffer = function (t) {
        return !(null == t || !t._isBuffer);
      }, u.compare = function (t, e) {
        if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError("Arguments must be Buffers");
        if (t === e) return 0;

        for (var r = t.length, n = e.length, o = 0, i = Math.min(r, n); o < i; ++o) if (t[o] !== e[o]) {
          r = t[o], n = e[o];
          break;
        }

        return r < n ? -1 : n < r ? 1 : 0;
      }, u.isEncoding = function (t) {
        switch (String(t).toLowerCase()) {
          case "hex":
          case "utf8":
          case "utf-8":
          case "ascii":
          case "latin1":
          case "binary":
          case "base64":
          case "ucs2":
          case "ucs-2":
          case "utf16le":
          case "utf-16le":
            return !0;

          default:
            return !1;
        }
      }, u.concat = function (t, e) {
        if (!i(t)) throw new TypeError('"list" argument must be an Array of Buffers');
        if (0 === t.length) return u.alloc(0);
        var r;
        if (void 0 === e) for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
        var n = u.allocUnsafe(e),
            o = 0;

        for (r = 0; r < t.length; ++r) {
          var s = t[r];
          if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers');
          s.copy(n, o), o += s.length;
        }

        return n;
      }, u.byteLength = d, u.prototype._isBuffer = !0, u.prototype.swap16 = function () {
        var t = this.length;
        if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits");

        for (var e = 0; e < t; e += 2) y(this, e, e + 1);

        return this;
      }, u.prototype.swap32 = function () {
        var t = this.length;
        if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits");

        for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2);

        return this;
      }, u.prototype.swap64 = function () {
        var t = this.length;
        if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits");

        for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);

        return this;
      }, u.prototype.toString = function () {
        var t = 0 | this.length;
        return 0 === t ? "" : 0 === arguments.length ? B(this, 0, t) : function (t, e, r) {
          var n = !1;
          if ((void 0 === e || e < 0) && (e = 0), e > this.length) return "";
          if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return "";
          if ((r >>>= 0) <= (e >>>= 0)) return "";

          for (t || (t = "utf8");;) switch (t) {
            case "hex":
              return T(this, e, r);

            case "utf8":
            case "utf-8":
              return B(this, e, r);

            case "ascii":
              return P(this, e, r);

            case "latin1":
            case "binary":
              return S(this, e, r);

            case "base64":
              return k(this, e, r);

            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return O(this, e, r);

            default:
              if (n) throw new TypeError("Unknown encoding: " + t);
              t = (t + "").toLowerCase(), n = !0;
          }
        }.apply(this, arguments);
      }, u.prototype.equals = function (t) {
        if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
        return this === t || 0 === u.compare(this, t);
      }, u.prototype.inspect = function () {
        var t = "",
            r = e.INSPECT_MAX_BYTES;
        return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g).join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">";
      }, u.prototype.compare = function (t, e, r, n, o) {
        if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
        if (void 0 === e && (e = 0), void 0 === r && (r = t ? t.length : 0), void 0 === n && (n = 0), void 0 === o && (o = this.length), e < 0 || r > t.length || n < 0 || o > this.length) throw new RangeError("out of range index");
        if (n >= o && e >= r) return 0;
        if (n >= o) return -1;
        if (e >= r) return 1;
        if (e >>>= 0, r >>>= 0, n >>>= 0, o >>>= 0, this === t) return 0;

        for (var i = o - n, s = r - e, a = Math.min(i, s), c = this.slice(n, o), f = t.slice(e, r), h = 0; h < a; ++h) if (c[h] !== f[h]) {
          i = c[h], s = f[h];
          break;
        }

        return i < s ? -1 : s < i ? 1 : 0;
      }, u.prototype.includes = function (t, e, r) {
        return -1 !== this.indexOf(t, e, r);
      }, u.prototype.indexOf = function (t, e, r) {
        return g(this, t, e, r, !0);
      }, u.prototype.lastIndexOf = function (t, e, r) {
        return g(this, t, e, r, !1);
      }, u.prototype.write = function (t, e, r, n) {
        if (void 0 === e) n = "utf8", r = this.length, e = 0;else if (void 0 === r && "string" == typeof e) n = e, r = this.length, e = 0;else {
          if (!isFinite(e)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
          e |= 0, isFinite(r) ? (r |= 0, void 0 === n && (n = "utf8")) : (n = r, r = void 0);
        }
        var o = this.length - e;
        if ((void 0 === r || r > o) && (r = o), t.length > 0 && (r < 0 || e < 0) || e > this.length) throw new RangeError("Attempt to write outside buffer bounds");
        n || (n = "utf8");

        for (var i = !1;;) switch (n) {
          case "hex":
            return b(this, t, e, r);

          case "utf8":
          case "utf-8":
            return m(this, t, e, r);

          case "ascii":
            return w(this, t, e, r);

          case "latin1":
          case "binary":
            return A(this, t, e, r);

          case "base64":
            return _(this, t, e, r);

          case "ucs2":
          case "ucs-2":
          case "utf16le":
          case "utf-16le":
            return E(this, t, e, r);

          default:
            if (i) throw new TypeError("Unknown encoding: " + n);
            n = ("" + n).toLowerCase(), i = !0;
        }
      }, u.prototype.toJSON = function () {
        return {
          type: "Buffer",
          data: Array.prototype.slice.call(this._arr || this, 0)
        };
      };
      var R = 4096;

      function P(t, e, r) {
        var n = "";
        r = Math.min(t.length, r);

        for (var o = e; o < r; ++o) n += String.fromCharCode(127 & t[o]);

        return n;
      }

      function S(t, e, r) {
        var n = "";
        r = Math.min(t.length, r);

        for (var o = e; o < r; ++o) n += String.fromCharCode(t[o]);

        return n;
      }

      function T(t, e, r) {
        var n = t.length;
        (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);

        for (var o = "", i = e; i < r; ++i) o += D(t[i]);

        return o;
      }

      function O(t, e, r) {
        for (var n = t.slice(e, r), o = "", i = 0; i < n.length; i += 2) o += String.fromCharCode(n[i] + 256 * n[i + 1]);

        return o;
      }

      function x(t, e, r) {
        if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint");
        if (t + e > r) throw new RangeError("Trying to access beyond buffer length");
      }

      function C(t, e, r, n, o, i) {
        if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
        if (e > o || e < i) throw new RangeError('"value" argument is out of bounds');
        if (r + n > t.length) throw new RangeError("Index out of range");
      }

      function U(t, e, r, n) {
        e < 0 && (e = 65535 + e + 1);

        for (var o = 0, i = Math.min(t.length - r, 2); o < i; ++o) t[r + o] = (e & 255 << 8 * (n ? o : 1 - o)) >>> 8 * (n ? o : 1 - o);
      }

      function L(t, e, r, n) {
        e < 0 && (e = 4294967295 + e + 1);

        for (var o = 0, i = Math.min(t.length - r, 4); o < i; ++o) t[r + o] = e >>> 8 * (n ? o : 3 - o) & 255;
      }

      function I(t, e, r, n, o, i) {
        if (r + n > t.length) throw new RangeError("Index out of range");
        if (r < 0) throw new RangeError("Index out of range");
      }

      function N(t, e, r, n, i) {
        return i || I(t, 0, r, 4), o.write(t, e, r, n, 23, 4), r + 4;
      }

      function M(t, e, r, n, i) {
        return i || I(t, 0, r, 8), o.write(t, e, r, n, 52, 8), r + 8;
      }

      u.prototype.slice = function (t, e) {
        var r,
            n = this.length;
        if (t = ~~t, e = void 0 === e ? n : ~~e, t < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), e < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t && (e = t), u.TYPED_ARRAY_SUPPORT) (r = this.subarray(t, e)).__proto__ = u.prototype;else {
          var o = e - t;
          r = new u(o, void 0);

          for (var i = 0; i < o; ++i) r[i] = this[i + t];
        }
        return r;
      }, u.prototype.readUIntLE = function (t, e, r) {
        t |= 0, e |= 0, r || x(t, e, this.length);

        for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256);) n += this[t + i] * o;

        return n;
      }, u.prototype.readUIntBE = function (t, e, r) {
        t |= 0, e |= 0, r || x(t, e, this.length);

        for (var n = this[t + --e], o = 1; e > 0 && (o *= 256);) n += this[t + --e] * o;

        return n;
      }, u.prototype.readUInt8 = function (t, e) {
        return e || x(t, 1, this.length), this[t];
      }, u.prototype.readUInt16LE = function (t, e) {
        return e || x(t, 2, this.length), this[t] | this[t + 1] << 8;
      }, u.prototype.readUInt16BE = function (t, e) {
        return e || x(t, 2, this.length), this[t] << 8 | this[t + 1];
      }, u.prototype.readUInt32LE = function (t, e) {
        return e || x(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3];
      }, u.prototype.readUInt32BE = function (t, e) {
        return e || x(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);
      }, u.prototype.readIntLE = function (t, e, r) {
        t |= 0, e |= 0, r || x(t, e, this.length);

        for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256);) n += this[t + i] * o;

        return n >= (o *= 128) && (n -= Math.pow(2, 8 * e)), n;
      }, u.prototype.readIntBE = function (t, e, r) {
        t |= 0, e |= 0, r || x(t, e, this.length);

        for (var n = e, o = 1, i = this[t + --n]; n > 0 && (o *= 256);) i += this[t + --n] * o;

        return i >= (o *= 128) && (i -= Math.pow(2, 8 * e)), i;
      }, u.prototype.readInt8 = function (t, e) {
        return e || x(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];
      }, u.prototype.readInt16LE = function (t, e) {
        e || x(t, 2, this.length);
        var r = this[t] | this[t + 1] << 8;
        return 32768 & r ? 4294901760 | r : r;
      }, u.prototype.readInt16BE = function (t, e) {
        e || x(t, 2, this.length);
        var r = this[t + 1] | this[t] << 8;
        return 32768 & r ? 4294901760 | r : r;
      }, u.prototype.readInt32LE = function (t, e) {
        return e || x(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;
      }, u.prototype.readInt32BE = function (t, e) {
        return e || x(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];
      }, u.prototype.readFloatLE = function (t, e) {
        return e || x(t, 4, this.length), o.read(this, t, !0, 23, 4);
      }, u.prototype.readFloatBE = function (t, e) {
        return e || x(t, 4, this.length), o.read(this, t, !1, 23, 4);
      }, u.prototype.readDoubleLE = function (t, e) {
        return e || x(t, 8, this.length), o.read(this, t, !0, 52, 8);
      }, u.prototype.readDoubleBE = function (t, e) {
        return e || x(t, 8, this.length), o.read(this, t, !1, 52, 8);
      }, u.prototype.writeUIntLE = function (t, e, r, n) {
        (t = +t, e |= 0, r |= 0, n) || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
        var o = 1,
            i = 0;

        for (this[e] = 255 & t; ++i < r && (o *= 256);) this[e + i] = t / o & 255;

        return e + r;
      }, u.prototype.writeUIntBE = function (t, e, r, n) {
        (t = +t, e |= 0, r |= 0, n) || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
        var o = r - 1,
            i = 1;

        for (this[e + o] = 255 & t; --o >= 0 && (i *= 256);) this[e + o] = t / i & 255;

        return e + r;
      }, u.prototype.writeUInt8 = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1;
      }, u.prototype.writeUInt16LE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : U(this, t, e, !0), e + 2;
      }, u.prototype.writeUInt16BE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : U(this, t, e, !1), e + 2;
      }, u.prototype.writeUInt32LE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16, this[e + 1] = t >>> 8, this[e] = 255 & t) : L(this, t, e, !0), e + 4;
      }, u.prototype.writeUInt32BE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : L(this, t, e, !1), e + 4;
      }, u.prototype.writeIntLE = function (t, e, r, n) {
        if (t = +t, e |= 0, !n) {
          var o = Math.pow(2, 8 * r - 1);
          C(this, t, e, r, o - 1, -o);
        }

        var i = 0,
            s = 1,
            a = 0;

        for (this[e] = 255 & t; ++i < r && (s *= 256);) t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1), this[e + i] = (t / s >> 0) - a & 255;

        return e + r;
      }, u.prototype.writeIntBE = function (t, e, r, n) {
        if (t = +t, e |= 0, !n) {
          var o = Math.pow(2, 8 * r - 1);
          C(this, t, e, r, o - 1, -o);
        }

        var i = r - 1,
            s = 1,
            a = 0;

        for (this[e + i] = 255 & t; --i >= 0 && (s *= 256);) t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1), this[e + i] = (t / s >> 0) - a & 255;

        return e + r;
      }, u.prototype.writeInt8 = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[e] = 255 & t, e + 1;
      }, u.prototype.writeInt16LE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : U(this, t, e, !0), e + 2;
      }, u.prototype.writeInt16BE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : U(this, t, e, !1), e + 2;
      }, u.prototype.writeInt32LE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[e + 2] = t >>> 16, this[e + 3] = t >>> 24) : L(this, t, e, !0), e + 4;
      }, u.prototype.writeInt32BE = function (t, e, r) {
        return t = +t, e |= 0, r || C(this, t, e, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : L(this, t, e, !1), e + 4;
      }, u.prototype.writeFloatLE = function (t, e, r) {
        return N(this, t, e, !0, r);
      }, u.prototype.writeFloatBE = function (t, e, r) {
        return N(this, t, e, !1, r);
      }, u.prototype.writeDoubleLE = function (t, e, r) {
        return M(this, t, e, !0, r);
      }, u.prototype.writeDoubleBE = function (t, e, r) {
        return M(this, t, e, !1, r);
      }, u.prototype.copy = function (t, e, r, n) {
        if (r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t.length), e || (e = 0), n > 0 && n < r && (n = r), n === r) return 0;
        if (0 === t.length || 0 === this.length) return 0;
        if (e < 0) throw new RangeError("targetStart out of bounds");
        if (r < 0 || r >= this.length) throw new RangeError("sourceStart out of bounds");
        if (n < 0) throw new RangeError("sourceEnd out of bounds");
        n > this.length && (n = this.length), t.length - e < n - r && (n = t.length - e + r);
        var o,
            i = n - r;
        if (this === t && r < e && e < n) for (o = i - 1; o >= 0; --o) t[o + e] = this[o + r];else if (i < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < i; ++o) t[o + e] = this[o + r];else Uint8Array.prototype.set.call(t, this.subarray(r, r + i), e);
        return i;
      }, u.prototype.fill = function (t, e, r, n) {
        if ("string" == typeof t) {
          if ("string" == typeof e ? (n = e, e = 0, r = this.length) : "string" == typeof r && (n = r, r = this.length), 1 === t.length) {
            var o = t.charCodeAt(0);
            o < 256 && (t = o);
          }

          if (void 0 !== n && "string" != typeof n) throw new TypeError("encoding must be a string");
          if ("string" == typeof n && !u.isEncoding(n)) throw new TypeError("Unknown encoding: " + n);
        } else "number" == typeof t && (t &= 255);

        if (e < 0 || this.length < e || this.length < r) throw new RangeError("Out of range index");
        if (r <= e) return this;
        var i;
        if (e >>>= 0, r = void 0 === r ? this.length : r >>> 0, t || (t = 0), "number" == typeof t) for (i = e; i < r; ++i) this[i] = t;else {
          var s = u.isBuffer(t) ? t : j(new u(t, n).toString()),
              a = s.length;

          for (i = 0; i < r - e; ++i) this[i + e] = s[i % a];
        }
        return this;
      };
      var Y = /[^+\/0-9A-Za-z-_]/g;

      function D(t) {
        return t < 16 ? "0" + t.toString(16) : t.toString(16);
      }

      function j(t, e) {
        var r;
        e = e || 1 / 0;

        for (var n = t.length, o = null, i = [], s = 0; s < n; ++s) {
          if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {
            if (!o) {
              if (r > 56319) {
                (e -= 3) > -1 && i.push(239, 191, 189);
                continue;
              }

              if (s + 1 === n) {
                (e -= 3) > -1 && i.push(239, 191, 189);
                continue;
              }

              o = r;
              continue;
            }

            if (r < 56320) {
              (e -= 3) > -1 && i.push(239, 191, 189), o = r;
              continue;
            }

            r = 65536 + (o - 55296 << 10 | r - 56320);
          } else o && (e -= 3) > -1 && i.push(239, 191, 189);

          if (o = null, r < 128) {
            if ((e -= 1) < 0) break;
            i.push(r);
          } else if (r < 2048) {
            if ((e -= 2) < 0) break;
            i.push(r >> 6 | 192, 63 & r | 128);
          } else if (r < 65536) {
            if ((e -= 3) < 0) break;
            i.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128);
          } else {
            if (!(r < 1114112)) throw new Error("Invalid code point");
            if ((e -= 4) < 0) break;
            i.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128);
          }
        }

        return i;
      }

      function q(t) {
        return n.toByteArray(function (t) {
          if ((t = function (t) {
            return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "");
          }(t).replace(Y, "")).length < 2) return "";

          for (; t.length % 4 != 0;) t += "=";

          return t;
        }(t));
      }

      function F(t, e, r, n) {
        for (var o = 0; o < n && !(o + r >= e.length || o >= t.length); ++o) e[o + r] = t[o];

        return o;
      }
    }).call(this, r(1));
  }, function (t, e, r) {
    (function (e) {
      var n = r(2),
          o = Object.prototype.toString,
          i = "function" == typeof Blob || "undefined" != typeof Blob && "[object BlobConstructor]" === o.call(Blob),
          s = "function" == typeof File || "undefined" != typeof File && "[object FileConstructor]" === o.call(File);

      t.exports = function t(r) {
        if (!r || "object" != typeof r) return !1;

        if (n(r)) {
          for (var o = 0, a = r.length; o < a; o++) if (t(r[o])) return !0;

          return !1;
        }

        if ("function" == typeof e && e.isBuffer && e.isBuffer(r) || "function" == typeof ArrayBuffer && r instanceof ArrayBuffer || i && r instanceof Blob || s && r instanceof File) return !0;
        if (r.toJSON && "function" == typeof r.toJSON && 1 === arguments.length) return t(r.toJSON(), !0);

        for (var u in r) if (Object.prototype.hasOwnProperty.call(r, u) && t(r[u])) return !0;

        return !1;
      };
    }).call(this, r(15).Buffer);
  }, function (t, e) {
    e.encode = function (t) {
      var e = "";

      for (var r in t) t.hasOwnProperty(r) && (e.length && (e += "&"), e += encodeURIComponent(r) + "=" + encodeURIComponent(t[r]));

      return e;
    }, e.decode = function (t) {
      for (var e = {}, r = t.split("&"), n = 0, o = r.length; n < o; n++) {
        var i = r[n].split("=");
        e[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);
      }

      return e;
    };
  }, function (t, e) {
    t.exports = function (t, e) {
      for (var r = [], n = (e = e || 0) || 0; n < t.length; n++) r[n - e] = t[n];

      return r;
    };
  }, function (t, e, r) {
    window, t.exports = function (t) {
      var e = {};

      function r(n) {
        if (e[n]) return e[n].exports;
        var o = e[n] = {
          i: n,
          l: !1,
          exports: {}
        };
        return t[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;
      }

      return r.m = t, r.c = e, r.d = function (t, e, n) {
        r.o(t, e) || Object.defineProperty(t, e, {
          enumerable: !0,
          get: n
        });
      }, r.r = function (t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
          value: "Module"
        }), Object.defineProperty(t, "__esModule", {
          value: !0
        });
      }, r.t = function (t, e) {
        if (1 & e && (t = r(t)), 8 & e) return t;
        if (4 & e && "object" == typeof t && t && t.__esModule) return t;
        var n = Object.create(null);
        if (r.r(n), Object.defineProperty(n, "default", {
          enumerable: !0,
          value: t
        }), 2 & e && "string" != typeof t) for (var o in t) r.d(n, o, function (e) {
          return t[e];
        }.bind(null, o));
        return n;
      }, r.n = function (t) {
        var e = t && t.__esModule ? function () {
          return t.default;
        } : function () {
          return t;
        };
        return r.d(e, "a", e), e;
      }, r.o = function (t, e) {
        return Object.prototype.hasOwnProperty.call(t, e);
      }, r.p = "", r(r.s = 29);
    }([function (t, e) {
      var r;

      r = function () {
        return this;
      }();

      try {
        r = r || Function("return this")() || (0, eval)("this");
      } catch (t) {
        "object" == typeof window && (r = window);
      }

      t.exports = r;
    }, function (t, e, r) {
      (function (t) {
        var n,
            o = r(26),
            i = r(25),
            s = r(19),
            a = r(18),
            u = r(17);
        t && t.ArrayBuffer && (n = r(15));
        var c = "undefined" != typeof navigator && /Android/i.test(navigator.userAgent),
            f = "undefined" != typeof navigator && /PhantomJS/i.test(navigator.userAgent),
            h = c || f;
        e.protocol = 3;
        var p = e.packets = {
          open: 0,
          close: 1,
          ping: 2,
          pong: 3,
          message: 4,
          upgrade: 5,
          noop: 6
        },
            l = o(p),
            d = {
          type: "error",
          data: "parser error"
        },
            y = r(14);

        function g(t, e, r) {
          for (var n = new Array(t.length), o = a(t.length, r), i = function (t, r, o) {
            e(r, function (e, r) {
              n[t] = r, o(e, n);
            });
          }, s = 0; s < t.length; s++) i(s, t[s], o);
        }

        e.encodePacket = function (r, n, o, i) {
          "function" == typeof n && (i = n, n = !1), "function" == typeof o && (i = o, o = null);
          var s = void 0 === r.data ? void 0 : r.data.buffer || r.data;
          if (t.ArrayBuffer && s instanceof ArrayBuffer) return function (t, r, n) {
            if (!r) return e.encodeBase64Packet(t, n);
            var o = t.data,
                i = new Uint8Array(o),
                s = new Uint8Array(1 + o.byteLength);
            s[0] = p[t.type];

            for (var a = 0; a < i.length; a++) s[a + 1] = i[a];

            return n(s.buffer);
          }(r, n, i);
          if (y && s instanceof t.Blob) return function (t, r, n) {
            if (!r) return e.encodeBase64Packet(t, n);
            if (h) return function (t, r, n) {
              if (!r) return e.encodeBase64Packet(t, n);
              var o = new FileReader();
              return o.onload = function () {
                t.data = o.result, e.encodePacket(t, r, !0, n);
              }, o.readAsArrayBuffer(t.data);
            }(t, r, n);
            var o = new Uint8Array(1);
            o[0] = p[t.type];
            var i = new y([o.buffer, t.data]);
            return n(i);
          }(r, n, i);
          if (s && s.base64) return function (t, r) {
            var n = "b" + e.packets[t.type] + t.data.data;
            return r(n);
          }(r, i);
          var a = p[r.type];
          return void 0 !== r.data && (a += o ? u.encode(String(r.data), {
            strict: !1
          }) : String(r.data)), i("" + a);
        }, e.encodeBase64Packet = function (r, n) {
          var o,
              i = "b" + e.packets[r.type];

          if (y && r.data instanceof t.Blob) {
            var s = new FileReader();
            return s.onload = function () {
              var t = s.result.split(",")[1];
              n(i + t);
            }, s.readAsDataURL(r.data);
          }

          try {
            o = String.fromCharCode.apply(null, new Uint8Array(r.data));
          } catch (t) {
            for (var a = new Uint8Array(r.data), u = new Array(a.length), c = 0; c < a.length; c++) u[c] = a[c];

            o = String.fromCharCode.apply(null, u);
          }

          return i += t.btoa(o), n(i);
        }, e.decodePacket = function (t, r, n) {
          if (void 0 === t) return d;

          if ("string" == typeof t) {
            if ("b" === t.charAt(0)) return e.decodeBase64Packet(t.substr(1), r);
            if (n && !1 === (t = function (t) {
              try {
                t = u.decode(t, {
                  strict: !1
                });
              } catch (t) {
                return !1;
              }

              return t;
            }(t))) return d;
            var o = t.charAt(0);
            return Number(o) == o && l[o] ? t.length > 1 ? {
              type: l[o],
              data: t.substring(1)
            } : {
              type: l[o]
            } : d;
          }

          o = new Uint8Array(t)[0];
          var i = s(t, 1);
          return y && "blob" === r && (i = new y([i])), {
            type: l[o],
            data: i
          };
        }, e.decodeBase64Packet = function (t, e) {
          var r = l[t.charAt(0)];
          if (!n) return {
            type: r,
            data: {
              base64: !0,
              data: t.substr(1)
            }
          };
          var o = n.decode(t.substr(1));
          return "blob" === e && y && (o = new y([o])), {
            type: r,
            data: o
          };
        }, e.encodePayload = function (t, r, n) {
          "function" == typeof r && (n = r, r = null);
          var o = i(t);
          return r && o ? y && !h ? e.encodePayloadAsBlob(t, n) : e.encodePayloadAsArrayBuffer(t, n) : t.length ? void g(t, function (t, n) {
            e.encodePacket(t, !!o && r, !1, function (t) {
              n(null, function (t) {
                return t.length + ":" + t;
              }(t));
            });
          }, function (t, e) {
            return n(e.join(""));
          }) : n("0:");
        }, e.decodePayload = function (t, r, n) {
          if ("string" != typeof t) return e.decodePayloadAsBinary(t, r, n);
          var o;
          if ("function" == typeof r && (n = r, r = null), "" === t) return n(d, 0, 1);

          for (var i, s, a = "", u = 0, c = t.length; u < c; u++) {
            var f = t.charAt(u);

            if (":" === f) {
              if ("" === a || a != (i = Number(a))) return n(d, 0, 1);
              if (a != (s = t.substr(u + 1, i)).length) return n(d, 0, 1);

              if (s.length) {
                if (o = e.decodePacket(s, r, !1), d.type === o.type && d.data === o.data) return n(d, 0, 1);
                if (!1 === n(o, u + i, c)) return;
              }

              u += i, a = "";
            } else a += f;
          }

          return "" !== a ? n(d, 0, 1) : void 0;
        }, e.encodePayloadAsArrayBuffer = function (t, r) {
          if (!t.length) return r(new ArrayBuffer(0));
          g(t, function (t, r) {
            e.encodePacket(t, !0, !0, function (t) {
              return r(null, t);
            });
          }, function (t, e) {
            var n = e.reduce(function (t, e) {
              var r;
              return t + (r = "string" == typeof e ? e.length : e.byteLength).toString().length + r + 2;
            }, 0),
                o = new Uint8Array(n),
                i = 0;
            return e.forEach(function (t) {
              var e = "string" == typeof t,
                  r = t;

              if (e) {
                for (var n = new Uint8Array(t.length), s = 0; s < t.length; s++) n[s] = t.charCodeAt(s);

                r = n.buffer;
              }

              o[i++] = e ? 0 : 1;
              var a = r.byteLength.toString();

              for (s = 0; s < a.length; s++) o[i++] = parseInt(a[s]);

              for (o[i++] = 255, n = new Uint8Array(r), s = 0; s < n.length; s++) o[i++] = n[s];
            }), r(o.buffer);
          });
        }, e.encodePayloadAsBlob = function (t, r) {
          g(t, function (t, r) {
            e.encodePacket(t, !0, !0, function (t) {
              var e = new Uint8Array(1);

              if (e[0] = 1, "string" == typeof t) {
                for (var n = new Uint8Array(t.length), o = 0; o < t.length; o++) n[o] = t.charCodeAt(o);

                t = n.buffer, e[0] = 0;
              }

              var i = (t instanceof ArrayBuffer ? t.byteLength : t.size).toString(),
                  s = new Uint8Array(i.length + 1);

              for (o = 0; o < i.length; o++) s[o] = parseInt(i[o]);

              if (s[i.length] = 255, y) {
                var a = new y([e.buffer, s.buffer, t]);
                r(null, a);
              }
            });
          }, function (t, e) {
            return r(new y(e));
          });
        }, e.decodePayloadAsBinary = function (t, r, n) {
          "function" == typeof r && (n = r, r = null);

          for (var o = t, i = []; o.byteLength > 0;) {
            for (var a = new Uint8Array(o), u = 0 === a[0], c = "", f = 1; 255 !== a[f]; f++) {
              if (c.length > 310) return n(d, 0, 1);
              c += a[f];
            }

            o = s(o, 2 + c.length), c = parseInt(c);
            var h = s(o, 0, c);
            if (u) try {
              h = String.fromCharCode.apply(null, new Uint8Array(h));
            } catch (t) {
              var p = new Uint8Array(h);

              for (h = "", f = 0; f < p.length; f++) h += String.fromCharCode(p[f]);
            }
            i.push(h), o = s(o, c);
          }

          var l = i.length;
          i.forEach(function (t, o) {
            n(e.decodePacket(t, r, !0), o, l);
          });
        };
      }).call(this, r(0));
    }, function (t, e) {
      t.exports = function () {
        return function () {};
      };
    }, function (t, e) {
      e.encode = function (t) {
        var e = "";

        for (var r in t) t.hasOwnProperty(r) && (e.length && (e += "&"), e += encodeURIComponent(r) + "=" + encodeURIComponent(t[r]));

        return e;
      }, e.decode = function (t) {
        for (var e = {}, r = t.split("&"), n = 0, o = r.length; n < o; n++) {
          var i = r[n].split("=");
          e[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);
        }

        return e;
      };
    }, function (t, e, r) {
      function n(t) {
        if (t) return function (t) {
          for (var e in n.prototype) t[e] = n.prototype[e];

          return t;
        }(t);
      }

      t.exports = n, n.prototype.on = n.prototype.addEventListener = function (t, e) {
        return this._callbacks = this._callbacks || {}, (this._callbacks["$" + t] = this._callbacks["$" + t] || []).push(e), this;
      }, n.prototype.once = function (t, e) {
        function r() {
          this.off(t, r), e.apply(this, arguments);
        }

        return r.fn = e, this.on(t, r), this;
      }, n.prototype.off = n.prototype.removeListener = n.prototype.removeAllListeners = n.prototype.removeEventListener = function (t, e) {
        if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;
        var r,
            n = this._callbacks["$" + t];
        if (!n) return this;
        if (1 == arguments.length) return delete this._callbacks["$" + t], this;

        for (var o = 0; o < n.length; o++) if ((r = n[o]) === e || r.fn === e) {
          n.splice(o, 1);
          break;
        }

        return this;
      }, n.prototype.emit = function (t) {
        this._callbacks = this._callbacks || {};
        var e = [].slice.call(arguments, 1),
            r = this._callbacks["$" + t];
        if (r) for (var n = 0, o = (r = r.slice(0)).length; n < o; ++n) r[n].apply(this, e);
        return this;
      }, n.prototype.listeners = function (t) {
        return this._callbacks = this._callbacks || {}, this._callbacks["$" + t] || [];
      }, n.prototype.hasListeners = function (t) {
        return !!this.listeners(t).length;
      };
    }, function (t, e, r) {
      var n = r(1),
          o = r(4);

      function i(t) {
        this.path = t.path, this.hostname = t.hostname, this.port = t.port, this.secure = t.secure, this.query = t.query, this.timestampParam = t.timestampParam, this.timestampRequests = t.timestampRequests, this.readyState = "", this.agent = t.agent || !1, this.socket = t.socket, this.enablesXDR = t.enablesXDR, this.pfx = t.pfx, this.key = t.key, this.passphrase = t.passphrase, this.cert = t.cert, this.ca = t.ca, this.ciphers = t.ciphers, this.rejectUnauthorized = t.rejectUnauthorized, this.forceNode = t.forceNode, this.extraHeaders = t.extraHeaders, this.localAddress = t.localAddress;
      }

      t.exports = i, o(i.prototype), i.prototype.onError = function (t, e) {
        var r = new Error(t);
        return r.type = "TransportError", r.description = e, this.emit("error", r), this;
      }, i.prototype.open = function () {
        return "closed" !== this.readyState && "" !== this.readyState || (this.readyState = "opening", this.doOpen()), this;
      }, i.prototype.close = function () {
        return "opening" !== this.readyState && "open" !== this.readyState || (this.doClose(), this.onClose()), this;
      }, i.prototype.send = function (t) {
        if ("open" !== this.readyState) throw new Error("Transport not open");
        this.write(t);
      }, i.prototype.onOpen = function () {
        this.readyState = "open", this.writable = !0, this.emit("open");
      }, i.prototype.onData = function (t) {
        var e = n.decodePacket(t, this.socket.binaryType);
        this.onPacket(e);
      }, i.prototype.onPacket = function (t) {
        this.emit("packet", t);
      }, i.prototype.onClose = function () {
        this.readyState = "closed", this.emit("close");
      };
    }, function (t, e, r) {
      var n = r(27);
      e.websocket = n;
    }, function (t, e) {
      var r = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
          n = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];

      t.exports = function (t) {
        var e = t,
            o = t.indexOf("["),
            i = t.indexOf("]");
        -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, ";") + t.substring(i, t.length));

        for (var s = r.exec(t || ""), a = {}, u = 14; u--;) a[n[u]] = s[u] || "";

        return -1 != o && -1 != i && (a.source = e, a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ":"), a.authority = a.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), a.ipv6uri = !0), a;
      };
    }, function (t, e) {
      var r = [].indexOf;

      t.exports = function (t, e) {
        if (r) return t.indexOf(e);

        for (var n = 0; n < t.length; ++n) if (t[n] === e) return n;

        return -1;
      };
    }, function (t, e, r) {
      "use strict";

      class n {
        constructor(t, e) {
          this.target = e, this.type = t;
        }

      }

      class o extends n {
        constructor(t, e) {
          super("message", e), this.data = t;
        }

      }

      class i extends n {
        constructor(t, e, r) {
          super("close", r), this.wasClean = r._closeFrameReceived && r._closeFrameSent, this.reason = e, this.code = t;
        }

      }

      class s extends n {
        constructor(t) {
          super("open", t);
        }

      }

      class a extends n {
        constructor(t, e) {
          super("error", e), this.message = t.message, this.error = t;
        }

      }

      const u = {
        addEventListener(t, e) {
          function r(t) {
            e.call(this, new o(t, this));
          }

          function n(t, r) {
            e.call(this, new i(t, r, this));
          }

          function u(t) {
            e.call(this, new a(t, this));
          }

          function c() {
            e.call(this, new s(this));
          }

          "function" == typeof e && ("message" === t ? (r._listener = e, this.on(t, r)) : "close" === t ? (n._listener = e, this.on(t, n)) : "error" === t ? (u._listener = e, this.on(t, u)) : "open" === t ? (c._listener = e, this.on(t, c)) : this.on(t, e));
        },

        removeEventListener(t, e) {
          const r = this.listeners(t);

          for (var n = 0; n < r.length; n++) r[n] !== e && r[n]._listener !== e || this.removeListener(t, r[n]);
        }

      };
      t.exports = u;
    }, function (t, e) {
      function r() {
        this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0;
      }

      function n(t) {
        return "function" == typeof t;
      }

      function o(t) {
        return "object" == typeof t && null !== t;
      }

      function i(t) {
        return void 0 === t;
      }

      t.exports = r, r.EventEmitter = r, r.prototype._events = void 0, r.prototype._maxListeners = void 0, r.defaultMaxListeners = 10, r.prototype.setMaxListeners = function (t) {
        if ("number" != typeof t || t < 0 || isNaN(t)) throw TypeError("n must be a positive number");
        return this._maxListeners = t, this;
      }, r.prototype.emit = function (t) {
        var e, r, s, a, u, c;

        if (this._events || (this._events = {}), "error" === t && (!this._events.error || o(this._events.error) && !this._events.error.length)) {
          if ((e = arguments[1]) instanceof Error) throw e;
          var f = new Error('Uncaught, unspecified "error" event. (' + e + ")");
          throw f.context = e, f;
        }

        if (i(r = this._events[t])) return !1;
        if (n(r)) switch (arguments.length) {
          case 1:
            r.call(this);
            break;

          case 2:
            r.call(this, arguments[1]);
            break;

          case 3:
            r.call(this, arguments[1], arguments[2]);
            break;

          default:
            a = Array.prototype.slice.call(arguments, 1), r.apply(this, a);
        } else if (o(r)) for (a = Array.prototype.slice.call(arguments, 1), s = (c = r.slice()).length, u = 0; u < s; u++) c[u].apply(this, a);
        return !0;
      }, r.prototype.addListener = function (t, e) {
        var s;
        if (!n(e)) throw TypeError("listener must be a function");
        return this._events || (this._events = {}), this._events.newListener && this.emit("newListener", t, n(e.listener) ? e.listener : e), this._events[t] ? o(this._events[t]) ? this._events[t].push(e) : this._events[t] = [this._events[t], e] : this._events[t] = e, o(this._events[t]) && !this._events[t].warned && (s = i(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners) && s > 0 && this._events[t].length > s && (this._events[t].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[t].length), "function" == typeof console.trace && console.trace()), this;
      }, r.prototype.on = r.prototype.addListener, r.prototype.once = function (t, e) {
        if (!n(e)) throw TypeError("listener must be a function");
        var r = !1;

        function o() {
          this.removeListener(t, o), r || (r = !0, e.apply(this, arguments));
        }

        return o.listener = e, this.on(t, o), this;
      }, r.prototype.removeListener = function (t, e) {
        var r, i, s, a;
        if (!n(e)) throw TypeError("listener must be a function");
        if (!this._events || !this._events[t]) return this;
        if (s = (r = this._events[t]).length, i = -1, r === e || n(r.listener) && r.listener === e) delete this._events[t], this._events.removeListener && this.emit("removeListener", t, e);else if (o(r)) {
          for (a = s; a-- > 0;) if (r[a] === e || r[a].listener && r[a].listener === e) {
            i = a;
            break;
          }

          if (i < 0) return this;
          1 === r.length ? (r.length = 0, delete this._events[t]) : r.splice(i, 1), this._events.removeListener && this.emit("removeListener", t, e);
        }
        return this;
      }, r.prototype.removeAllListeners = function (t) {
        var e, r;
        if (!this._events) return this;
        if (!this._events.removeListener) return 0 === arguments.length ? this._events = {} : this._events[t] && delete this._events[t], this;

        if (0 === arguments.length) {
          for (e in this._events) "removeListener" !== e && this.removeAllListeners(e);

          return this.removeAllListeners("removeListener"), this._events = {}, this;
        }

        if (n(r = this._events[t])) this.removeListener(t, r);else if (r) for (; r.length;) this.removeListener(t, r[r.length - 1]);
        return delete this._events[t], this;
      }, r.prototype.listeners = function (t) {
        return this._events && this._events[t] ? n(this._events[t]) ? [this._events[t]] : this._events[t].slice() : [];
      }, r.prototype.listenerCount = function (t) {
        if (this._events) {
          var e = this._events[t];
          if (n(e)) return 1;
          if (e) return e.length;
        }

        return 0;
      }, r.listenerCount = function (t, e) {
        return t.listenerCount(e);
      };
    }, function (t, e, r) {
      const n = r(10),
            o = r(9),
            i = r(2)("weapp-socket:"),
            s = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];

      class a extends n {
        constructor(t, e, r) {
          super(), this.readyState = a.CONNECTING, this.protocol = "", this._socket = null, null !== t && (Array.isArray(e) ? e = e.join(", ") : "object" == typeof e && null !== e && (r = e, e = void 0), function (t, e, r) {
            Object.assign(r, {
              url: t,
              header: {
                "content-type": "application/json"
              },
              protocols: e,
              method: "GET"
            }), this._socket = function (t) {
              const e = wx.connectSocket(t);
              return i("socketTask: ", e), e || {
                onClose: wx.onSocketClose,
                onOpen: wx.onSocketOpen,
                onError: wx.onSocketError,
                onMessage: wx.onSocketMessage,
                send: wx.sendSocketMessage,
                close: wx.closeSocket
              };
            }(r), this.addSocketEventListeners();
          }.call(this, t, e, r));
        }

        get CONNECTING() {
          return a.CONNECTING;
        }

        get CLOSING() {
          return a.CLOSING;
        }

        get CLOSED() {
          return a.CLOSED;
        }

        get OPEN() {
          return a.OPEN;
        }

        addSocketEventListeners() {
          this._socket.onOpen(() => {
            this.readyState = a.OPEN, this.onopen();
          }), this._socket.onClose(t => {
            i("onclose: ", t), this.readyState = a.CLOSED, this.onclose(t.code, t.reason);
          }), this._socket.onError(t => {
            i("onerror: ", t), this.onerror(t);
          }), this._socket.onMessage(t => {
            this.onmessage(t);
          });
        }

        send(t) {
          i("send data: ", t, this.readyState), this.readyState === a.OPEN && this._socket.send({
            data: t
          });
        }

        close(t, e) {
          i("close socket: ", t, e), this.readyState = a.CLOSING, this._socket.close({
            code: t,
            reason: e
          });
        }

      }

      s.forEach((t, e) => {
        a[s[e]] = e;
      }), ["open", "error", "close", "message"].forEach(t => {
        Object.defineProperty(a.prototype, `on${t}`, {
          get() {
            const e = this.listeners(t);

            for (var r = 0; r < e.length; r++) if (e[r]._listener) return e[r]._listener;
          },

          set(e) {
            const r = this.listeners(t);

            for (var n = 0; n < r.length; n++) r[n]._listener && this.removeListener(t, r[n]);

            this.addEventListener(t, e);
          }

        });
      }), a.prototype.addEventListener = o.addEventListener, a.prototype.removeEventListener = o.removeEventListener, t.exports = a;
    }, function (t, e, r) {
      "use strict";

      var n,
          o = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),
          i = 64,
          s = {},
          a = 0,
          u = 0;

      function c(t) {
        var e = "";

        do {
          e = o[t % i] + e, t = Math.floor(t / i);
        } while (t > 0);

        return e;
      }

      function f() {
        var t = c(+new Date());
        return t !== n ? (a = 0, n = t) : t + "." + c(a++);
      }

      for (; u < i; u++) s[o[u]] = u;

      f.encode = c, f.decode = function (t) {
        var e = 0;

        for (u = 0; u < t.length; u++) e = e * i + s[t.charAt(u)];

        return e;
      }, t.exports = f;
    }, function (t, e) {
      t.exports = function (t, e) {
        var r = function () {};

        r.prototype = e.prototype, t.prototype = new r(), t.prototype.constructor = t;
      };
    }, function (t, e, r) {
      (function (e) {
        var r = e.BlobBuilder || e.WebKitBlobBuilder || e.MSBlobBuilder || e.MozBlobBuilder,
            n = function () {
          try {
            return 2 === new Blob(["hi"]).size;
          } catch (t) {
            return !1;
          }
        }(),
            o = n && function () {
          try {
            return 2 === new Blob([new Uint8Array([1, 2])]).size;
          } catch (t) {
            return !1;
          }
        }(),
            i = r && r.prototype.append && r.prototype.getBlob;

        function s(t) {
          for (var e = 0; e < t.length; e++) {
            var r = t[e];

            if (r.buffer instanceof ArrayBuffer) {
              var n = r.buffer;

              if (r.byteLength !== n.byteLength) {
                var o = new Uint8Array(r.byteLength);
                o.set(new Uint8Array(n, r.byteOffset, r.byteLength)), n = o.buffer;
              }

              t[e] = n;
            }
          }
        }

        t.exports = n ? o ? e.Blob : function (t, e) {
          return s(t), new Blob(t, e || {});
        } : i ? function (t, e) {
          e = e || {};
          var n = new r();
          s(t);

          for (var o = 0; o < t.length; o++) n.append(t[o]);

          return e.type ? n.getBlob(e.type) : n.getBlob();
        } : void 0;
      }).call(this, r(0));
    }, function (t, e) {
      !function () {
        "use strict";

        for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", r = new Uint8Array(256), n = 0; n < t.length; n++) r[t.charCodeAt(n)] = n;

        e.encode = function (e) {
          var r,
              n = new Uint8Array(e),
              o = n.length,
              i = "";

          for (r = 0; r < o; r += 3) i += t[n[r] >> 2], i += t[(3 & n[r]) << 4 | n[r + 1] >> 4], i += t[(15 & n[r + 1]) << 2 | n[r + 2] >> 6], i += t[63 & n[r + 2]];

          return o % 3 == 2 ? i = i.substring(0, i.length - 1) + "=" : o % 3 == 1 && (i = i.substring(0, i.length - 2) + "=="), i;
        }, e.decode = function (t) {
          var e,
              n,
              o,
              i,
              s,
              a = .75 * t.length,
              u = t.length,
              c = 0;
          "=" === t[t.length - 1] && (a--, "=" === t[t.length - 2] && a--);
          var f = new ArrayBuffer(a),
              h = new Uint8Array(f);

          for (e = 0; e < u; e += 4) n = r[t.charCodeAt(e)], o = r[t.charCodeAt(e + 1)], i = r[t.charCodeAt(e + 2)], s = r[t.charCodeAt(e + 3)], h[c++] = n << 2 | o >> 4, h[c++] = (15 & o) << 4 | i >> 2, h[c++] = (3 & i) << 6 | 63 & s;

          return f;
        };
      }();
    }, function (t, e) {
      t.exports = function (t) {
        return t.webpackPolyfill || (t.deprecate = function () {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, "loaded", {
          enumerable: !0,
          get: function () {
            return t.l;
          }
        }), Object.defineProperty(t, "id", {
          enumerable: !0,
          get: function () {
            return t.i;
          }
        }), t.webpackPolyfill = 1), t;
      };
    }, function (t, e, r) {
      (function (t, n) {
        var o;
        /*! https://mths.be/utf8js v2.1.2 by @mathias */

        !function (i) {
          var s = ("object" == typeof t && t && t.exports, "object" == typeof n && n);
          s.global !== s && s.window;
          var a,
              u,
              c,
              f = String.fromCharCode;

          function h(t) {
            for (var e, r, n = [], o = 0, i = t.length; o < i;) (e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i ? 56320 == (64512 & (r = t.charCodeAt(o++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), o--) : n.push(e);

            return n;
          }

          function p(t, e) {
            if (t >= 55296 && t <= 57343) {
              if (e) throw Error("Lone surrogate U+" + t.toString(16).toUpperCase() + " is not a scalar value");
              return !1;
            }

            return !0;
          }

          function l(t, e) {
            return f(t >> e & 63 | 128);
          }

          function d(t, e) {
            if (0 == (4294967168 & t)) return f(t);
            var r = "";
            return 0 == (4294965248 & t) ? r = f(t >> 6 & 31 | 192) : 0 == (4294901760 & t) ? (p(t, e) || (t = 65533), r = f(t >> 12 & 15 | 224), r += l(t, 6)) : 0 == (4292870144 & t) && (r = f(t >> 18 & 7 | 240), r += l(t, 12), r += l(t, 6)), r += f(63 & t | 128);
          }

          function y() {
            if (c >= u) throw Error("Invalid byte index");
            var t = 255 & a[c];
            if (c++, 128 == (192 & t)) return 63 & t;
            throw Error("Invalid continuation byte");
          }

          function g(t) {
            var e, r;
            if (c > u) throw Error("Invalid byte index");
            if (c == u) return !1;
            if (e = 255 & a[c], c++, 0 == (128 & e)) return e;

            if (192 == (224 & e)) {
              if ((r = (31 & e) << 6 | y()) >= 128) return r;
              throw Error("Invalid continuation byte");
            }

            if (224 == (240 & e)) {
              if ((r = (15 & e) << 12 | y() << 6 | y()) >= 2048) return p(r, t) ? r : 65533;
              throw Error("Invalid continuation byte");
            }

            if (240 == (248 & e) && (r = (7 & e) << 18 | y() << 12 | y() << 6 | y()) >= 65536 && r <= 1114111) return r;
            throw Error("Invalid UTF-8 detected");
          }

          var v = {
            version: "2.1.2",
            encode: function (t, e) {
              for (var r = !1 !== (e = e || {}).strict, n = h(t), o = n.length, i = -1, s = ""; ++i < o;) s += d(n[i], r);

              return s;
            },
            decode: function (t, e) {
              var r = !1 !== (e = e || {}).strict;
              a = h(t), u = a.length, c = 0;

              for (var n, o = []; !1 !== (n = g(r));) o.push(n);

              return function (t) {
                for (var e, r = t.length, n = -1, o = ""; ++n < r;) (e = t[n]) > 65535 && (o += f((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), o += f(e);

                return o;
              }(o);
            }
          };
          void 0 === (o = function () {
            return v;
          }.call(e, r, e, t)) || (t.exports = o);
        }();
      }).call(this, r(16)(t), r(0));
    }, function (t, e) {
      function r() {}

      t.exports = function (t, e, n) {
        var o = !1;
        return n = n || r, i.count = t, 0 === t ? e() : i;

        function i(t, r) {
          if (i.count <= 0) throw new Error("after called too many times");
          --i.count, t ? (o = !0, e(t), e = n) : 0 !== i.count || o || e(null, r);
        }
      };
    }, function (t, e) {
      t.exports = function (t, e, r) {
        var n = t.byteLength;
        if (e = e || 0, r = r || n, t.slice) return t.slice(e, r);
        if (e < 0 && (e += n), r < 0 && (r += n), r > n && (r = n), e >= n || e >= r || 0 === n) return new ArrayBuffer(0);

        for (var o = new Uint8Array(t), i = new Uint8Array(r - e), s = e, a = 0; s < r; s++, a++) i[a] = o[s];

        return i.buffer;
      };
    }, function (t, e) {
      var r = {}.toString;

      t.exports = Array.isArray || function (t) {
        return "[object Array]" == r.call(t);
      };
    }, function (t, e) {
      var r = {}.toString;

      t.exports = Array.isArray || function (t) {
        return "[object Array]" == r.call(t);
      };
    }, function (t, e) {
      e.read = function (t, e, r, n, o) {
        var i,
            s,
            a = 8 * o - n - 1,
            u = (1 << a) - 1,
            c = u >> 1,
            f = -7,
            h = r ? o - 1 : 0,
            p = r ? -1 : 1,
            l = t[e + h];

        for (h += p, i = l & (1 << -f) - 1, l >>= -f, f += a; f > 0; i = 256 * i + t[e + h], h += p, f -= 8);

        for (s = i & (1 << -f) - 1, i >>= -f, f += n; f > 0; s = 256 * s + t[e + h], h += p, f -= 8);

        if (0 === i) i = 1 - c;else {
          if (i === u) return s ? NaN : 1 / 0 * (l ? -1 : 1);
          s += Math.pow(2, n), i -= c;
        }
        return (l ? -1 : 1) * s * Math.pow(2, i - n);
      }, e.write = function (t, e, r, n, o, i) {
        var s,
            a,
            u,
            c = 8 * i - o - 1,
            f = (1 << c) - 1,
            h = f >> 1,
            p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
            l = n ? 0 : i - 1,
            d = n ? 1 : -1,
            y = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;

        for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, s = f) : (s = Math.floor(Math.log(e) / Math.LN2), e * (u = Math.pow(2, -s)) < 1 && (s--, u *= 2), (e += s + h >= 1 ? p / u : p * Math.pow(2, 1 - h)) * u >= 2 && (s++, u /= 2), s + h >= f ? (a = 0, s = f) : s + h >= 1 ? (a = (e * u - 1) * Math.pow(2, o), s += h) : (a = e * Math.pow(2, h - 1) * Math.pow(2, o), s = 0)); o >= 8; t[r + l] = 255 & a, l += d, a /= 256, o -= 8);

        for (s = s << o | a, c += o; c > 0; t[r + l] = 255 & s, l += d, s /= 256, c -= 8);

        t[r + l - d] |= 128 * y;
      };
    }, function (t, e, r) {
      "use strict";

      e.byteLength = function (t) {
        var e = c(t),
            r = e[0],
            n = e[1];
        return 3 * (r + n) / 4 - n;
      }, e.toByteArray = function (t) {
        for (var e, r = c(t), n = r[0], s = r[1], a = new i(NaN), u = 0, f = s > 0 ? n - 4 : n, h = 0; h < f; h += 4) e = o[t.charCodeAt(h)] << 18 | o[t.charCodeAt(h + 1)] << 12 | o[t.charCodeAt(h + 2)] << 6 | o[t.charCodeAt(h + 3)], a[u++] = e >> 16 & 255, a[u++] = e >> 8 & 255, a[u++] = 255 & e;

        return 2 === s && (e = o[t.charCodeAt(h)] << 2 | o[t.charCodeAt(h + 1)] >> 4, a[u++] = 255 & e), 1 === s && (e = o[t.charCodeAt(h)] << 10 | o[t.charCodeAt(h + 1)] << 4 | o[t.charCodeAt(h + 2)] >> 2, a[u++] = e >> 8 & 255, a[u++] = 255 & e), a;
      }, e.fromByteArray = function (t) {
        for (var e, r = t.length, o = r % 3, i = [], s = 0, a = r - o; s < a; s += 16383) i.push(f(t, s, s + 16383 > a ? a : s + 16383));

        return 1 === o ? (e = t[r - 1], i.push(n[e >> 2] + n[e << 4 & 63] + "==")) : 2 === o && (e = (t[r - 2] << 8) + t[r - 1], i.push(n[e >> 10] + n[e >> 4 & 63] + n[e << 2 & 63] + "=")), i.join("");
      };

      for (var n = [], o = [], i = "undefined" != typeof Uint8Array ? Uint8Array : Array, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, u = s.length; a < u; ++a) n[a] = s[a], o[s.charCodeAt(a)] = a;

      function c(t) {
        var e = t.length;
        if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
        var r = t.indexOf("=");
        return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4];
      }

      function f(t, e, r) {
        for (var o, i, s = [], a = e; a < r; a += 3) o = (t[a] << 16 & 16711680) + (t[a + 1] << 8 & 65280) + (255 & t[a + 2]), s.push(n[(i = o) >> 18 & 63] + n[i >> 12 & 63] + n[i >> 6 & 63] + n[63 & i]);

        return s.join("");
      }

      o["-".charCodeAt(0)] = 62, o["_".charCodeAt(0)] = 63;
    }, function (t, e, r) {
      "use strict";

      (function (t) {
        /*!
         * The buffer module from node.js, for the browser.
         *
         * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
         * @license  MIT
         */
        var n = r(23),
            o = r(22),
            i = r(21);

        function s() {
          return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
        }

        function a(t, e) {
          if (s() < e) throw new RangeError("Invalid typed array length");
          return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t;
        }

        function u(t, e, r) {
          if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);

          if ("number" == typeof t) {
            if ("string" == typeof e) throw new Error("If encoding is specified then the first argument must be a string");
            return h(this, t);
          }

          return c(this, t, e, r);
        }

        function c(t, e, r, n) {
          if ("number" == typeof e) throw new TypeError('"value" argument must not be a number');
          return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function (t, e, r, n) {
            if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError("'offset' is out of bounds");
            if (e.byteLength < r + (n || 0)) throw new RangeError("'length' is out of bounds");
            return e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n), u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = p(t, e), t;
          }(t, e, r, n) : "string" == typeof e ? function (t, e, r) {
            if ("string" == typeof r && "" !== r || (r = "utf8"), !u.isEncoding(r)) throw new TypeError('"encoding" must be a valid string encoding');
            var n = 0 | d(e, r),
                o = (t = a(t, n)).write(e, r);
            return o !== n && (t = t.slice(0, o)), t;
          }(t, e, r) : function (t, e) {
            if (u.isBuffer(e)) {
              var r = 0 | l(e.length);
              return 0 === (t = a(t, r)).length ? t : (e.copy(t, 0, 0, r), t);
            }

            if (e) {
              if ("undefined" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || "length" in e) return "number" != typeof e.length || (n = e.length) != n ? a(t, 0) : p(t, e);
              if ("Buffer" === e.type && i(e.data)) return p(t, e.data);
            }

            var n;
            throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");
          }(t, e);
        }

        function f(t) {
          if ("number" != typeof t) throw new TypeError('"size" argument must be a number');
          if (t < 0) throw new RangeError('"size" argument must not be negative');
        }

        function h(t, e) {
          if (f(e), t = a(t, e < 0 ? 0 : 0 | l(e)), !u.TYPED_ARRAY_SUPPORT) for (var r = 0; r < e; ++r) t[r] = 0;
          return t;
        }

        function p(t, e) {
          var r = e.length < 0 ? 0 : 0 | l(e.length);
          t = a(t, r);

          for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];

          return t;
        }

        function l(t) {
          if (t >= s()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + s().toString(16) + " bytes");
          return 0 | t;
        }

        function d(t, e) {
          if (u.isBuffer(t)) return t.length;
          if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;
          "string" != typeof t && (t = "" + t);
          var r = t.length;
          if (0 === r) return 0;

          for (var n = !1;;) switch (e) {
            case "ascii":
            case "latin1":
            case "binary":
              return r;

            case "utf8":
            case "utf-8":
            case void 0:
              return j(t).length;

            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return 2 * r;

            case "hex":
              return r >>> 1;

            case "base64":
              return q(t).length;

            default:
              if (n) return j(t).length;
              e = ("" + e).toLowerCase(), n = !0;
          }
        }

        function y(t, e, r) {
          var n = t[e];
          t[e] = t[r], t[r] = n;
        }

        function g(t, e, r, n, o) {
          if (0 === t.length) return -1;

          if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = o ? 0 : t.length - 1), r < 0 && (r = t.length + r), r >= t.length) {
            if (o) return -1;
            r = t.length - 1;
          } else if (r < 0) {
            if (!o) return -1;
            r = 0;
          }

          if ("string" == typeof e && (e = u.from(e, n)), u.isBuffer(e)) return 0 === e.length ? -1 : v(t, e, r, n, o);
          if ("number" == typeof e) return e &= 255, u.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array.prototype.indexOf.call(t, e, r) : Uint8Array.prototype.lastIndexOf.call(t, e, r) : v(t, [e], r, n, o);
          throw new TypeError("val must be string, number or Buffer");
        }

        function v(t, e, r, n, o) {
          var i,
              s = 1,
              a = t.length,
              u = e.length;

          if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) {
            if (t.length < 2 || e.length < 2) return -1;
            s = 2, a /= 2, u /= 2, r /= 2;
          }

          function c(t, e) {
            return 1 === s ? t[e] : t.readUInt16BE(e * s);
          }

          if (o) {
            var f = -1;

            for (i = r; i < a; i++) if (c(t, i) === c(e, -1 === f ? 0 : i - f)) {
              if (-1 === f && (f = i), i - f + 1 === u) return f * s;
            } else -1 !== f && (i -= i - f), f = -1;
          } else for (r + u > a && (r = a - u), i = r; i >= 0; i--) {
            for (var h = !0, p = 0; p < u; p++) if (c(t, i + p) !== c(e, p)) {
              h = !1;
              break;
            }

            if (h) return i;
          }

          return -1;
        }

        function b(t, e, r, n) {
          r = Number(r) || 0;
          var o = t.length - r;
          n ? (n = Number(n)) > o && (n = o) : n = o;
          var i = e.length;
          if (i % 2 != 0) throw new TypeError("Invalid hex string");
          n > i / 2 && (n = i / 2);

          for (var s = 0; s < n; ++s) {
            var a = parseInt(e.substr(2 * s, 2), 16);
            if (isNaN(a)) return s;
            t[r + s] = a;
          }

          return s;
        }

        function m(t, e, r, n) {
          return F(j(e, t.length - r), t, r, n);
        }

        function w(t, e, r, n) {
          return F(function (t) {
            for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));

            return e;
          }(e), t, r, n);
        }

        function A(t, e, r, n) {
          return w(t, e, r, n);
        }

        function _(t, e, r, n) {
          return F(q(e), t, r, n);
        }

        function E(t, e, r, n) {
          return F(function (t, e) {
            for (var r, n, o, i = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) r = t.charCodeAt(s), n = r >> 8, o = r % 256, i.push(o), i.push(n);

            return i;
          }(e, t.length - r), t, r, n);
        }

        function k(t, e, r) {
          return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));
        }

        function B(t, e, r) {
          r = Math.min(t.length, r);

          for (var n = [], o = e; o < r;) {
            var i,
                s,
                a,
                u,
                c = t[o],
                f = null,
                h = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;
            if (o + h <= r) switch (h) {
              case 1:
                c < 128 && (f = c);
                break;

              case 2:
                128 == (192 & (i = t[o + 1])) && (u = (31 & c) << 6 | 63 & i) > 127 && (f = u);
                break;

              case 3:
                i = t[o + 1], s = t[o + 2], 128 == (192 & i) && 128 == (192 & s) && (u = (15 & c) << 12 | (63 & i) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (f = u);
                break;

              case 4:
                i = t[o + 1], s = t[o + 2], a = t[o + 3], 128 == (192 & i) && 128 == (192 & s) && 128 == (192 & a) && (u = (15 & c) << 18 | (63 & i) << 12 | (63 & s) << 6 | 63 & a) > 65535 && u < 1114112 && (f = u);
            }
            null === f ? (f = 65533, h = 1) : f > 65535 && (f -= 65536, n.push(f >>> 10 & 1023 | 55296), f = 56320 | 1023 & f), n.push(f), o += h;
          }

          return function (t) {
            var e = t.length;
            if (e <= R) return String.fromCharCode.apply(String, t);

            for (var r = "", n = 0; n < e;) r += String.fromCharCode.apply(String, t.slice(n, n += R));

            return r;
          }(n);
        }

        e.Buffer = u, e.SlowBuffer = function (t) {
          return +t != t && (t = 0), u.alloc(+t);
        }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function () {
          try {
            var t = new Uint8Array(1);
            return t.__proto__ = {
              __proto__: Uint8Array.prototype,
              foo: function () {
                return 42;
              }
            }, 42 === t.foo() && "function" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;
          } catch (t) {
            return !1;
          }
        }(), e.kMaxLength = s(), u.poolSize = 8192, u._augment = function (t) {
          return t.__proto__ = u.prototype, t;
        }, u.from = function (t, e, r) {
          return c(null, t, e, r);
        }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, {
          value: null,
          configurable: !0
        })), u.alloc = function (t, e, r) {
          return function (t, e, r, n) {
            return f(e), e <= 0 ? a(t, e) : void 0 !== r ? "string" == typeof n ? a(t, e).fill(r, n) : a(t, e).fill(r) : a(t, e);
          }(null, t, e, r);
        }, u.allocUnsafe = function (t) {
          return h(null, t);
        }, u.allocUnsafeSlow = function (t) {
          return h(null, t);
        }, u.isBuffer = function (t) {
          return !(null == t || !t._isBuffer);
        }, u.compare = function (t, e) {
          if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError("Arguments must be Buffers");
          if (t === e) return 0;

          for (var r = t.length, n = e.length, o = 0, i = Math.min(r, n); o < i; ++o) if (t[o] !== e[o]) {
            r = t[o], n = e[o];
            break;
          }

          return r < n ? -1 : n < r ? 1 : 0;
        }, u.isEncoding = function (t) {
          switch (String(t).toLowerCase()) {
            case "hex":
            case "utf8":
            case "utf-8":
            case "ascii":
            case "latin1":
            case "binary":
            case "base64":
            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return !0;

            default:
              return !1;
          }
        }, u.concat = function (t, e) {
          if (!i(t)) throw new TypeError('"list" argument must be an Array of Buffers');
          if (0 === t.length) return u.alloc(0);
          var r;
          if (void 0 === e) for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
          var n = u.allocUnsafe(e),
              o = 0;

          for (r = 0; r < t.length; ++r) {
            var s = t[r];
            if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers');
            s.copy(n, o), o += s.length;
          }

          return n;
        }, u.byteLength = d, u.prototype._isBuffer = !0, u.prototype.swap16 = function () {
          var t = this.length;
          if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits");

          for (var e = 0; e < t; e += 2) y(this, e, e + 1);

          return this;
        }, u.prototype.swap32 = function () {
          var t = this.length;
          if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits");

          for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2);

          return this;
        }, u.prototype.swap64 = function () {
          var t = this.length;
          if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits");

          for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);

          return this;
        }, u.prototype.toString = function () {
          var t = 0 | this.length;
          return 0 === t ? "" : 0 === arguments.length ? B(this, 0, t) : function (t, e, r) {
            var n = !1;
            if ((void 0 === e || e < 0) && (e = 0), e > this.length) return "";
            if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return "";
            if ((r >>>= 0) <= (e >>>= 0)) return "";

            for (t || (t = "utf8");;) switch (t) {
              case "hex":
                return T(this, e, r);

              case "utf8":
              case "utf-8":
                return B(this, e, r);

              case "ascii":
                return P(this, e, r);

              case "latin1":
              case "binary":
                return S(this, e, r);

              case "base64":
                return k(this, e, r);

              case "ucs2":
              case "ucs-2":
              case "utf16le":
              case "utf-16le":
                return O(this, e, r);

              default:
                if (n) throw new TypeError("Unknown encoding: " + t);
                t = (t + "").toLowerCase(), n = !0;
            }
          }.apply(this, arguments);
        }, u.prototype.equals = function (t) {
          if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
          return this === t || 0 === u.compare(this, t);
        }, u.prototype.inspect = function () {
          var t = "",
              r = e.INSPECT_MAX_BYTES;
          return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g).join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">";
        }, u.prototype.compare = function (t, e, r, n, o) {
          if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
          if (void 0 === e && (e = 0), void 0 === r && (r = t ? t.length : 0), void 0 === n && (n = 0), void 0 === o && (o = this.length), e < 0 || r > t.length || n < 0 || o > this.length) throw new RangeError("out of range index");
          if (n >= o && e >= r) return 0;
          if (n >= o) return -1;
          if (e >= r) return 1;
          if (e >>>= 0, r >>>= 0, n >>>= 0, o >>>= 0, this === t) return 0;

          for (var i = o - n, s = r - e, a = Math.min(i, s), c = this.slice(n, o), f = t.slice(e, r), h = 0; h < a; ++h) if (c[h] !== f[h]) {
            i = c[h], s = f[h];
            break;
          }

          return i < s ? -1 : s < i ? 1 : 0;
        }, u.prototype.includes = function (t, e, r) {
          return -1 !== this.indexOf(t, e, r);
        }, u.prototype.indexOf = function (t, e, r) {
          return g(this, t, e, r, !0);
        }, u.prototype.lastIndexOf = function (t, e, r) {
          return g(this, t, e, r, !1);
        }, u.prototype.write = function (t, e, r, n) {
          if (void 0 === e) n = "utf8", r = this.length, e = 0;else if (void 0 === r && "string" == typeof e) n = e, r = this.length, e = 0;else {
            if (!isFinite(e)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
            e |= 0, isFinite(r) ? (r |= 0, void 0 === n && (n = "utf8")) : (n = r, r = void 0);
          }
          var o = this.length - e;
          if ((void 0 === r || r > o) && (r = o), t.length > 0 && (r < 0 || e < 0) || e > this.length) throw new RangeError("Attempt to write outside buffer bounds");
          n || (n = "utf8");

          for (var i = !1;;) switch (n) {
            case "hex":
              return b(this, t, e, r);

            case "utf8":
            case "utf-8":
              return m(this, t, e, r);

            case "ascii":
              return w(this, t, e, r);

            case "latin1":
            case "binary":
              return A(this, t, e, r);

            case "base64":
              return _(this, t, e, r);

            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return E(this, t, e, r);

            default:
              if (i) throw new TypeError("Unknown encoding: " + n);
              n = ("" + n).toLowerCase(), i = !0;
          }
        }, u.prototype.toJSON = function () {
          return {
            type: "Buffer",
            data: Array.prototype.slice.call(this._arr || this, 0)
          };
        };
        var R = 4096;

        function P(t, e, r) {
          var n = "";
          r = Math.min(t.length, r);

          for (var o = e; o < r; ++o) n += String.fromCharCode(127 & t[o]);

          return n;
        }

        function S(t, e, r) {
          var n = "";
          r = Math.min(t.length, r);

          for (var o = e; o < r; ++o) n += String.fromCharCode(t[o]);

          return n;
        }

        function T(t, e, r) {
          var n = t.length;
          (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);

          for (var o = "", i = e; i < r; ++i) o += D(t[i]);

          return o;
        }

        function O(t, e, r) {
          for (var n = t.slice(e, r), o = "", i = 0; i < n.length; i += 2) o += String.fromCharCode(n[i] + 256 * n[i + 1]);

          return o;
        }

        function x(t, e, r) {
          if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint");
          if (t + e > r) throw new RangeError("Trying to access beyond buffer length");
        }

        function C(t, e, r, n, o, i) {
          if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
          if (e > o || e < i) throw new RangeError('"value" argument is out of bounds');
          if (r + n > t.length) throw new RangeError("Index out of range");
        }

        function U(t, e, r, n) {
          e < 0 && (e = 65535 + e + 1);

          for (var o = 0, i = Math.min(t.length - r, 2); o < i; ++o) t[r + o] = (e & 255 << 8 * (n ? o : 1 - o)) >>> 8 * (n ? o : 1 - o);
        }

        function L(t, e, r, n) {
          e < 0 && (e = 4294967295 + e + 1);

          for (var o = 0, i = Math.min(t.length - r, 4); o < i; ++o) t[r + o] = e >>> 8 * (n ? o : 3 - o) & 255;
        }

        function I(t, e, r, n, o, i) {
          if (r + n > t.length) throw new RangeError("Index out of range");
          if (r < 0) throw new RangeError("Index out of range");
        }

        function N(t, e, r, n, i) {
          return i || I(t, 0, r, 4), o.write(t, e, r, n, 23, 4), r + 4;
        }

        function M(t, e, r, n, i) {
          return i || I(t, 0, r, 8), o.write(t, e, r, n, 52, 8), r + 8;
        }

        u.prototype.slice = function (t, e) {
          var r,
              n = this.length;
          if (t = ~~t, e = void 0 === e ? n : ~~e, t < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), e < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t && (e = t), u.TYPED_ARRAY_SUPPORT) (r = this.subarray(t, e)).__proto__ = u.prototype;else {
            var o = e - t;
            r = new u(o, void 0);

            for (var i = 0; i < o; ++i) r[i] = this[i + t];
          }
          return r;
        }, u.prototype.readUIntLE = function (t, e, r) {
          t |= 0, e |= 0, r || x(t, e, this.length);

          for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256);) n += this[t + i] * o;

          return n;
        }, u.prototype.readUIntBE = function (t, e, r) {
          t |= 0, e |= 0, r || x(t, e, this.length);

          for (var n = this[t + --e], o = 1; e > 0 && (o *= 256);) n += this[t + --e] * o;

          return n;
        }, u.prototype.readUInt8 = function (t, e) {
          return e || x(t, 1, this.length), this[t];
        }, u.prototype.readUInt16LE = function (t, e) {
          return e || x(t, 2, this.length), this[t] | this[t + 1] << 8;
        }, u.prototype.readUInt16BE = function (t, e) {
          return e || x(t, 2, this.length), this[t] << 8 | this[t + 1];
        }, u.prototype.readUInt32LE = function (t, e) {
          return e || x(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3];
        }, u.prototype.readUInt32BE = function (t, e) {
          return e || x(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);
        }, u.prototype.readIntLE = function (t, e, r) {
          t |= 0, e |= 0, r || x(t, e, this.length);

          for (var n = this[t], o = 1, i = 0; ++i < e && (o *= 256);) n += this[t + i] * o;

          return n >= (o *= 128) && (n -= Math.pow(2, 8 * e)), n;
        }, u.prototype.readIntBE = function (t, e, r) {
          t |= 0, e |= 0, r || x(t, e, this.length);

          for (var n = e, o = 1, i = this[t + --n]; n > 0 && (o *= 256);) i += this[t + --n] * o;

          return i >= (o *= 128) && (i -= Math.pow(2, 8 * e)), i;
        }, u.prototype.readInt8 = function (t, e) {
          return e || x(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];
        }, u.prototype.readInt16LE = function (t, e) {
          e || x(t, 2, this.length);
          var r = this[t] | this[t + 1] << 8;
          return 32768 & r ? 4294901760 | r : r;
        }, u.prototype.readInt16BE = function (t, e) {
          e || x(t, 2, this.length);
          var r = this[t + 1] | this[t] << 8;
          return 32768 & r ? 4294901760 | r : r;
        }, u.prototype.readInt32LE = function (t, e) {
          return e || x(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;
        }, u.prototype.readInt32BE = function (t, e) {
          return e || x(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];
        }, u.prototype.readFloatLE = function (t, e) {
          return e || x(t, 4, this.length), o.read(this, t, !0, 23, 4);
        }, u.prototype.readFloatBE = function (t, e) {
          return e || x(t, 4, this.length), o.read(this, t, !1, 23, 4);
        }, u.prototype.readDoubleLE = function (t, e) {
          return e || x(t, 8, this.length), o.read(this, t, !0, 52, 8);
        }, u.prototype.readDoubleBE = function (t, e) {
          return e || x(t, 8, this.length), o.read(this, t, !1, 52, 8);
        }, u.prototype.writeUIntLE = function (t, e, r, n) {
          t = +t, e |= 0, r |= 0, n || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
          var o = 1,
              i = 0;

          for (this[e] = 255 & t; ++i < r && (o *= 256);) this[e + i] = t / o & 255;

          return e + r;
        }, u.prototype.writeUIntBE = function (t, e, r, n) {
          t = +t, e |= 0, r |= 0, n || C(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
          var o = r - 1,
              i = 1;

          for (this[e + o] = 255 & t; --o >= 0 && (i *= 256);) this[e + o] = t / i & 255;

          return e + r;
        }, u.prototype.writeUInt8 = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1;
        }, u.prototype.writeUInt16LE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : U(this, t, e, !0), e + 2;
        }, u.prototype.writeUInt16BE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : U(this, t, e, !1), e + 2;
        }, u.prototype.writeUInt32LE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16, this[e + 1] = t >>> 8, this[e] = 255 & t) : L(this, t, e, !0), e + 4;
        }, u.prototype.writeUInt32BE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : L(this, t, e, !1), e + 4;
        }, u.prototype.writeIntLE = function (t, e, r, n) {
          if (t = +t, e |= 0, !n) {
            var o = Math.pow(2, 8 * r - 1);
            C(this, t, e, r, o - 1, -o);
          }

          var i = 0,
              s = 1,
              a = 0;

          for (this[e] = 255 & t; ++i < r && (s *= 256);) t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1), this[e + i] = (t / s >> 0) - a & 255;

          return e + r;
        }, u.prototype.writeIntBE = function (t, e, r, n) {
          if (t = +t, e |= 0, !n) {
            var o = Math.pow(2, 8 * r - 1);
            C(this, t, e, r, o - 1, -o);
          }

          var i = r - 1,
              s = 1,
              a = 0;

          for (this[e + i] = 255 & t; --i >= 0 && (s *= 256);) t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1), this[e + i] = (t / s >> 0) - a & 255;

          return e + r;
        }, u.prototype.writeInt8 = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[e] = 255 & t, e + 1;
        }, u.prototype.writeInt16LE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : U(this, t, e, !0), e + 2;
        }, u.prototype.writeInt16BE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : U(this, t, e, !1), e + 2;
        }, u.prototype.writeInt32LE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[e + 2] = t >>> 16, this[e + 3] = t >>> 24) : L(this, t, e, !0), e + 4;
        }, u.prototype.writeInt32BE = function (t, e, r) {
          return t = +t, e |= 0, r || C(this, t, e, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : L(this, t, e, !1), e + 4;
        }, u.prototype.writeFloatLE = function (t, e, r) {
          return N(this, t, e, !0, r);
        }, u.prototype.writeFloatBE = function (t, e, r) {
          return N(this, t, e, !1, r);
        }, u.prototype.writeDoubleLE = function (t, e, r) {
          return M(this, t, e, !0, r);
        }, u.prototype.writeDoubleBE = function (t, e, r) {
          return M(this, t, e, !1, r);
        }, u.prototype.copy = function (t, e, r, n) {
          if (r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t.length), e || (e = 0), n > 0 && n < r && (n = r), n === r) return 0;
          if (0 === t.length || 0 === this.length) return 0;
          if (e < 0) throw new RangeError("targetStart out of bounds");
          if (r < 0 || r >= this.length) throw new RangeError("sourceStart out of bounds");
          if (n < 0) throw new RangeError("sourceEnd out of bounds");
          n > this.length && (n = this.length), t.length - e < n - r && (n = t.length - e + r);
          var o,
              i = n - r;
          if (this === t && r < e && e < n) for (o = i - 1; o >= 0; --o) t[o + e] = this[o + r];else if (i < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < i; ++o) t[o + e] = this[o + r];else Uint8Array.prototype.set.call(t, this.subarray(r, r + i), e);
          return i;
        }, u.prototype.fill = function (t, e, r, n) {
          if ("string" == typeof t) {
            if ("string" == typeof e ? (n = e, e = 0, r = this.length) : "string" == typeof r && (n = r, r = this.length), 1 === t.length) {
              var o = t.charCodeAt(0);
              o < 256 && (t = o);
            }

            if (void 0 !== n && "string" != typeof n) throw new TypeError("encoding must be a string");
            if ("string" == typeof n && !u.isEncoding(n)) throw new TypeError("Unknown encoding: " + n);
          } else "number" == typeof t && (t &= 255);

          if (e < 0 || this.length < e || this.length < r) throw new RangeError("Out of range index");
          if (r <= e) return this;
          var i;
          if (e >>>= 0, r = void 0 === r ? this.length : r >>> 0, t || (t = 0), "number" == typeof t) for (i = e; i < r; ++i) this[i] = t;else {
            var s = u.isBuffer(t) ? t : j(new u(t, n).toString()),
                a = s.length;

            for (i = 0; i < r - e; ++i) this[i + e] = s[i % a];
          }
          return this;
        };
        var Y = /[^+\/0-9A-Za-z-_]/g;

        function D(t) {
          return t < 16 ? "0" + t.toString(16) : t.toString(16);
        }

        function j(t, e) {
          var r;
          e = e || 1 / 0;

          for (var n = t.length, o = null, i = [], s = 0; s < n; ++s) {
            if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {
              if (!o) {
                if (r > 56319) {
                  (e -= 3) > -1 && i.push(239, 191, 189);
                  continue;
                }

                if (s + 1 === n) {
                  (e -= 3) > -1 && i.push(239, 191, 189);
                  continue;
                }

                o = r;
                continue;
              }

              if (r < 56320) {
                (e -= 3) > -1 && i.push(239, 191, 189), o = r;
                continue;
              }

              r = 65536 + (o - 55296 << 10 | r - 56320);
            } else o && (e -= 3) > -1 && i.push(239, 191, 189);

            if (o = null, r < 128) {
              if ((e -= 1) < 0) break;
              i.push(r);
            } else if (r < 2048) {
              if ((e -= 2) < 0) break;
              i.push(r >> 6 | 192, 63 & r | 128);
            } else if (r < 65536) {
              if ((e -= 3) < 0) break;
              i.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128);
            } else {
              if (!(r < 1114112)) throw new Error("Invalid code point");
              if ((e -= 4) < 0) break;
              i.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128);
            }
          }

          return i;
        }

        function q(t) {
          return n.toByteArray(function (t) {
            if ((t = function (t) {
              return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "");
            }(t).replace(Y, "")).length < 2) return "";

            for (; t.length % 4 != 0;) t += "=";

            return t;
          }(t));
        }

        function F(t, e, r, n) {
          for (var o = 0; o < n && !(o + r >= e.length || o >= t.length); ++o) e[o + r] = t[o];

          return o;
        }
      }).call(this, r(0));
    }, function (t, e, r) {
      (function (e) {
        var n = r(20),
            o = Object.prototype.toString,
            i = "function" == typeof Blob || "undefined" != typeof Blob && "[object BlobConstructor]" === o.call(Blob),
            s = "function" == typeof File || "undefined" != typeof File && "[object FileConstructor]" === o.call(File);

        t.exports = function t(r) {
          if (!r || "object" != typeof r) return !1;

          if (n(r)) {
            for (var o = 0, a = r.length; o < a; o++) if (t(r[o])) return !0;

            return !1;
          }

          if ("function" == typeof e && e.isBuffer && e.isBuffer(r) || "function" == typeof ArrayBuffer && r instanceof ArrayBuffer || i && r instanceof Blob || s && r instanceof File) return !0;
          if (r.toJSON && "function" == typeof r.toJSON && 1 === arguments.length) return t(r.toJSON(), !0);

          for (var u in r) if (Object.prototype.hasOwnProperty.call(r, u) && t(r[u])) return !0;

          return !1;
        };
      }).call(this, r(24).Buffer);
    }, function (t, e) {
      t.exports = Object.keys || function (t) {
        var e = [],
            r = Object.prototype.hasOwnProperty;

        for (var n in t) r.call(t, n) && e.push(n);

        return e;
      };
    }, function (t, e, r) {
      (function (e) {
        var n,
            o = r(5),
            i = r(1),
            s = r(3),
            a = r(13),
            u = r(12),
            c = r(2)("engine.io-client:websocket"),
            f = e.WebSocket || e.MozWebSocket;
        if ("undefined" == typeof window) try {
          n = r(11);
        } catch (t) {
          c("require error: ", t);
        }
        var h = f;

        function p(t) {
          t && t.forceBase64 && (this.supportsBinary = !1), this.perMessageDeflate = t.perMessageDeflate, this.usingBrowserWebSocket = f && !t.forceNode, this.protocols = t.protocols, this.usingBrowserWebSocket || (h = n), o.call(this, t);
        }

        h || "undefined" != typeof window || (h = n), t.exports = p, a(p, o), p.prototype.name = "websocket", p.prototype.supportsBinary = !0, p.prototype.doOpen = function () {
          if (c("wesocket do open: ", this.protocols), this.check()) {
            var t = this.uri(),
                e = this.protocols,
                r = {
              agent: this.agent,
              perMessageDeflate: this.perMessageDeflate
            };
            r.pfx = this.pfx, r.key = this.key, r.passphrase = this.passphrase, r.cert = this.cert, r.ca = this.ca, r.ciphers = this.ciphers, r.rejectUnauthorized = this.rejectUnauthorized, this.extraHeaders && (r.headers = this.extraHeaders), this.localAddress && (r.localAddress = this.localAddress);

            try {
              this.ws = this.usingBrowserWebSocket ? e ? new h(t, e) : new h(t) : new h(t, e, r);
            } catch (t) {
              return this.emit("error", t);
            }

            void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.supports && this.ws.supports.binary ? (this.supportsBinary = !0, this.ws.binaryType = "nodebuffer") : this.ws.binaryType = "arraybuffer", this.addEventListeners();
          }
        }, p.prototype.addEventListeners = function () {
          var t = this;
          this.ws.onopen = function () {
            t.onOpen();
          }, this.ws.onclose = function () {
            t.onClose();
          }, this.ws.onmessage = function (e) {
            t.onData(e.data);
          }, this.ws.onerror = function (e) {
            t.onError("websocket error", e);
          };
        }, p.prototype.write = function (t) {
          var e = this;
          this.writable = !1;

          for (var r, n = t.length, o = 0, s = n; o < s; o++) r = t[o], i.encodePacket(r, e.supportsBinary, function (t) {
            try {
              e.ws.send(t);
            } catch (t) {}

            --n || (e.emit("flush"), setTimeout(function () {
              e.writable = !0, e.emit("drain");
            }, 0));
          });
        }, p.prototype.onClose = function () {
          o.prototype.onClose.call(this);
        }, p.prototype.doClose = function () {
          void 0 !== this.ws && this.ws.close();
        }, p.prototype.uri = function () {
          var t = this.query || {},
              e = this.secure ? "wss" : "ws",
              r = "";
          return this.port && ("wss" === e && 443 !== Number(this.port) || "ws" === e && 80 !== Number(this.port)) && (r = ":" + this.port), this.timestampRequests && (t[this.timestampParam] = u()), this.supportsBinary || (t.b64 = 1), (t = s.encode(t)).length && (t = "?" + t), e + "://" + (-1 !== this.hostname.indexOf(":") ? "[" + this.hostname + "]" : this.hostname) + r + this.path + t;
        }, p.prototype.check = function () {
          return !(!h || "__initialize" in h && this.name === p.prototype.name);
        };
      }).call(this, r(0));
    }, function (t, e, r) {
      (function (e) {
        var n = r(6),
            o = r(4),
            i = r(2)("engine.io-client:socket"),
            s = r(8),
            a = r(1),
            u = r(7),
            c = r(3);

        function f(t, r) {
          if (!(this instanceof f)) return new f(t, r);
          r = r || {}, t && "object" == typeof t && (r = t, t = null), t ? (t = u(t), r.hostname = t.host, r.secure = "https" === t.protocol || "wss" === t.protocol, r.port = t.port, t.query && (r.query = t.query)) : r.host && (r.hostname = u(r.host).host), this.secure = null != r.secure ? r.secure : e.location && "https:" === location.protocol, r.hostname && !r.port && (r.port = this.secure ? "443" : "80"), this.agent = r.agent || !1, this.hostname = r.hostname || (e.location ? location.hostname : "localhost"), this.port = r.port || (e.location && location.port ? location.port : this.secure ? 443 : 80), this.query = r.query || {}, "string" == typeof this.query && (this.query = c.decode(this.query)), this.upgrade = !1 !== r.upgrade, this.path = (r.path || "/engine.io").replace(/\/$/, "") + "/", this.forceJSONP = !!r.forceJSONP, this.jsonp = !1 !== r.jsonp, this.forceBase64 = !!r.forceBase64, this.enablesXDR = !!r.enablesXDR, this.timestampParam = r.timestampParam || "t", this.timestampRequests = r.timestampRequests, this.transports = r.transports || ["websocket"], this.transportOptions = r.transportOptions || {}, this.readyState = "", this.writeBuffer = [], this.prevBufferLen = 0, this.policyPort = r.policyPort || 843, this.rememberUpgrade = r.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = r.onlyBinaryUpgrades, this.perMessageDeflate = !1 !== r.perMessageDeflate && (r.perMessageDeflate || {}), !0 === this.perMessageDeflate && (this.perMessageDeflate = {}), this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024), this.pfx = r.pfx || null, this.key = r.key || null, this.passphrase = r.passphrase || null, this.cert = r.cert || null, this.ca = r.ca || null, this.ciphers = r.ciphers || null, this.rejectUnauthorized = void 0 === r.rejectUnauthorized || r.rejectUnauthorized, this.forceNode = !!r.forceNode;
          var n = "object" == typeof e && e;
          n.global === n && (r.extraHeaders && Object.keys(r.extraHeaders).length > 0 && (this.extraHeaders = r.extraHeaders), r.localAddress && (this.localAddress = r.localAddress)), this.id = null, this.upgrades = null, this.pingInterval = null, this.pingTimeout = null, this.pingIntervalTimer = null, this.pingTimeoutTimer = null, this.open();
        }

        t.exports = f, f.priorWebsocketSuccess = !1, o(f.prototype), f.protocol = a.protocol, f.Socket = f, f.Transport = r(5), f.transports = r(6), f.parser = r(1), f.prototype.createTransport = function (t) {
          i('creating transport "%s"', t);

          var e = function (t) {
            var e = {};

            for (var r in t) t.hasOwnProperty(r) && (e[r] = t[r]);

            return e;
          }(this.query);

          e.EIO = a.protocol, e.transport = t;
          var r = this.transportOptions[t] || {};
          this.id && (e.sid = this.id);
          var o = new n[t]({
            query: e,
            socket: this,
            agent: r.agent || this.agent,
            hostname: r.hostname || this.hostname,
            port: r.port || this.port,
            secure: r.secure || this.secure,
            path: r.path || this.path,
            forceJSONP: r.forceJSONP || this.forceJSONP,
            jsonp: r.jsonp || this.jsonp,
            forceBase64: r.forceBase64 || this.forceBase64,
            enablesXDR: r.enablesXDR || this.enablesXDR,
            timestampRequests: r.timestampRequests || this.timestampRequests,
            timestampParam: r.timestampParam || this.timestampParam,
            policyPort: r.policyPort || this.policyPort,
            pfx: r.pfx || this.pfx,
            key: r.key || this.key,
            passphrase: r.passphrase || this.passphrase,
            cert: r.cert || this.cert,
            ca: r.ca || this.ca,
            ciphers: r.ciphers || this.ciphers,
            rejectUnauthorized: r.rejectUnauthorized || this.rejectUnauthorized,
            perMessageDeflate: r.perMessageDeflate || this.perMessageDeflate,
            extraHeaders: r.extraHeaders || this.extraHeaders,
            forceNode: r.forceNode || this.forceNode,
            localAddress: r.localAddress || this.localAddress,
            requestTimeout: r.requestTimeout || this.requestTimeout,
            protocols: r.protocols || void 0
          });
          return i("transport: ", o), o;
        }, f.prototype.open = function () {
          var t;
          if (this.rememberUpgrade && f.priorWebsocketSuccess && -1 !== this.transports.indexOf("websocket")) t = "websocket";else {
            if (0 === this.transports.length) {
              var e = this;
              return void setTimeout(function () {
                e.emit("error", "No transports available");
              }, 0);
            }

            t = this.transports[0];
          }
          this.readyState = "opening";

          try {
            t = this.createTransport(t);
          } catch (t) {
            return this.transports.shift(), void this.open();
          }

          t.open(), this.setTransport(t);
        }, f.prototype.setTransport = function (t) {
          i("setting transport %s", t.name);
          var e = this;
          this.transport && (i("clearing existing transport %s", this.transport.name), this.transport.removeAllListeners()), this.transport = t, t.on("drain", function () {
            e.onDrain();
          }).on("packet", function (t) {
            e.onPacket(t);
          }).on("error", function (t) {
            e.onError(t);
          }).on("close", function () {
            e.onClose("transport close");
          });
        }, f.prototype.probe = function (t) {
          i('probing transport "%s"', t);
          var e = this.createTransport(t, {
            probe: 1
          }),
              r = !1,
              n = this;

          function o() {
            if (n.onlyBinaryUpgrades) {
              var o = !this.supportsBinary && n.transport.supportsBinary;
              r = r || o;
            }

            r || (i('probe transport "%s" opened', t), e.send([{
              type: "ping",
              data: "probe"
            }]), e.once("packet", function (o) {
              if (!r) if ("pong" === o.type && "probe" === o.data) {
                if (i('probe transport "%s" pong', t), n.upgrading = !0, n.emit("upgrading", e), !e) return;
                f.priorWebsocketSuccess = "websocket" === e.name, i('pausing current transport "%s"', n.transport.name), n.transport.pause(function () {
                  r || "closed" !== n.readyState && (i("changing transport and sending upgrade packet"), p(), n.setTransport(e), e.send([{
                    type: "upgrade"
                  }]), n.emit("upgrade", e), e = null, n.upgrading = !1, n.flush());
                });
              } else {
                i('probe transport "%s" failed', t);
                var s = new Error("probe error");
                s.transport = e.name, n.emit("upgradeError", s);
              }
            }));
          }

          function s() {
            r || (r = !0, p(), e.close(), e = null);
          }

          function a(r) {
            var o = new Error("probe error: " + r);
            o.transport = e.name, s(), i('probe transport "%s" failed because of error: %s', t, r), n.emit("upgradeError", o);
          }

          function u() {
            a("transport closed");
          }

          function c() {
            a("socket closed");
          }

          function h(t) {
            e && t.name !== e.name && (i('"%s" works - aborting "%s"', t.name, e.name), s());
          }

          function p() {
            e.removeListener("open", o), e.removeListener("error", a), e.removeListener("close", u), n.removeListener("close", c), n.removeListener("upgrading", h);
          }

          f.priorWebsocketSuccess = !1, e.once("open", o), e.once("error", a), e.once("close", u), this.once("close", c), this.once("upgrading", h), e.open();
        }, f.prototype.onOpen = function () {
          if (i("socket open"), this.readyState = "open", f.priorWebsocketSuccess = "websocket" === this.transport.name, this.emit("open"), this.flush(), "open" === this.readyState && this.upgrade && this.transport.pause) {
            i("starting upgrade probes");

            for (var t = 0, e = this.upgrades.length; t < e; t++) this.probe(this.upgrades[t]);
          }
        }, f.prototype.onPacket = function (t) {
          if ("opening" === this.readyState || "open" === this.readyState || "closing" === this.readyState) switch (i('socket receive: type "%s", data "%s"', t.type, t.data), this.emit("packet", t), this.emit("heartbeat"), t.type) {
            case "open":
              this.onHandshake(JSON.parse(t.data));
              break;

            case "pong":
              this.setPing(), this.emit("pong");
              break;

            case "error":
              var e = new Error("server error");
              e.code = t.data, this.onError(e);
              break;

            case "message":
              this.emit("data", t.data), this.emit("message", t.data);
          } else i('packet received with socket readyState "%s"', this.readyState);
        }, f.prototype.onHandshake = function (t) {
          this.emit("handshake", t), this.id = t.sid, this.transport.query.sid = t.sid, this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), "closed" !== this.readyState && (this.setPing(), this.removeListener("heartbeat", this.onHeartbeat), this.on("heartbeat", this.onHeartbeat));
        }, f.prototype.onHeartbeat = function (t) {
          clearTimeout(this.pingTimeoutTimer);
          var e = this;
          e.pingTimeoutTimer = setTimeout(function () {
            "closed" !== e.readyState && e.onClose("ping timeout");
          }, t || e.pingInterval + e.pingTimeout);
        }, f.prototype.setPing = function () {
          var t = this;
          clearTimeout(t.pingIntervalTimer), t.pingIntervalTimer = setTimeout(function () {
            i("writing ping packet - expecting pong within %sms", t.pingTimeout), t.ping(), t.onHeartbeat(t.pingTimeout);
          }, t.pingInterval);
        }, f.prototype.ping = function () {
          var t = this;
          this.sendPacket("ping", function () {
            t.emit("ping");
          });
        }, f.prototype.onDrain = function () {
          this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 === this.writeBuffer.length ? this.emit("drain") : this.flush();
        }, f.prototype.flush = function () {
          "closed" !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (i("flushing %d packets in socket", this.writeBuffer.length), this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit("flush"));
        }, f.prototype.write = f.prototype.send = function (t, e, r) {
          return this.sendPacket("message", t, e, r), this;
        }, f.prototype.sendPacket = function (t, e, r, n) {
          if ("function" == typeof e && (n = e, e = void 0), "function" == typeof r && (n = r, r = null), "closing" !== this.readyState && "closed" !== this.readyState) {
            (r = r || {}).compress = !1 !== r.compress;
            var o = {
              type: t,
              data: e,
              options: r
            };
            this.emit("packetCreate", o), this.writeBuffer.push(o), n && this.once("flush", n), this.flush();
          }
        }, f.prototype.close = function () {
          if ("opening" === this.readyState || "open" === this.readyState) {
            this.readyState = "closing";
            var t = this;
            this.writeBuffer.length ? this.once("drain", function () {
              this.upgrading ? n() : e();
            }) : this.upgrading ? n() : e();
          }

          function e() {
            t.onClose("forced close"), i("socket closing - telling transport to close"), t.transport.close();
          }

          function r() {
            t.removeListener("upgrade", r), t.removeListener("upgradeError", r), e();
          }

          function n() {
            t.once("upgrade", r), t.once("upgradeError", r);
          }

          return this;
        }, f.prototype.onError = function (t) {
          i("socket error %j", t), f.priorWebsocketSuccess = !1, this.emit("error", t), this.onClose("transport error", t);
        }, f.prototype.onClose = function (t, e) {
          "opening" !== this.readyState && "open" !== this.readyState && "closing" !== this.readyState || (i('socket close with reason: "%s"', t), clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = "closed", this.id = null, this.emit("close", t, e), this.writeBuffer = [], this.prevBufferLen = 0);
        }, f.prototype.filterUpgrades = function (t) {
          for (var e = [], r = 0, n = t.length; r < n; r++) ~s(this.transports, t[r]) && e.push(t[r]);

          return e;
        };
      }).call(this, r(0));
    }, function (t, e, r) {
      t.exports = r(28), t.exports.parser = r(1);
    }]);
  }, function (t, e, r) {
    (function (t) {
      var n = r(2),
          o = r(9),
          i = Object.prototype.toString,
          s = "function" == typeof t.Blob || "[object BlobConstructor]" === i.call(t.Blob),
          a = "function" == typeof t.File || "[object FileConstructor]" === i.call(t.File);
      e.deconstructPacket = function (t) {
        var e = [],
            r = t.data,
            i = t;
        return i.data = function t(e, r) {
          if (!e) return e;

          if (o(e)) {
            var i = {
              _placeholder: !0,
              num: r.length
            };
            return r.push(e), i;
          }

          if (n(e)) {
            for (var s = new Array(e.length), a = 0; a < e.length; a++) s[a] = t(e[a], r);

            return s;
          }

          if ("object" == typeof e && !(e instanceof Date)) {
            var s = {};

            for (var u in e) s[u] = t(e[u], r);

            return s;
          }

          return e;
        }(r, e), i.attachments = e.length, {
          packet: i,
          buffers: e
        };
      }, e.reconstructPacket = function (t, e) {
        return t.data = function t(e, r) {
          if (!e) return e;
          if (e && e._placeholder) return r[e.num];
          if (n(e)) for (var o = 0; o < e.length; o++) e[o] = t(e[o], r);else if ("object" == typeof e) for (var i in e) e[i] = t(e[i], r);
          return e;
        }(t.data, e), t.attachments = void 0, t;
      }, e.removeBlobs = function (t, e) {
        var r = 0,
            i = t;
        !function t(u, c, f) {
          if (!u) return u;

          if (s && u instanceof Blob || a && u instanceof File) {
            r++;
            var h = new FileReader();
            h.onload = function () {
              f ? f[c] = this.result : i = this.result, --r || e(i);
            }, h.readAsArrayBuffer(u);
          } else if (n(u)) for (var p = 0; p < u.length; p++) t(u[p], p, u);else if ("object" == typeof u && !o(u)) for (var l in u) t(u[l], l, u);
        }(i), r || e(i);
      };
    }).call(this, r(1));
  }, function (t, e) {
    var r = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
        n = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];

    t.exports = function (t) {
      var e = t,
          o = t.indexOf("["),
          i = t.indexOf("]");
      -1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, ";") + t.substring(i, t.length));

      for (var s = r.exec(t || ""), a = {}, u = 14; u--;) a[n[u]] = s[u] || "";

      return -1 != o && -1 != i && (a.source = e, a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ":"), a.authority = a.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), a.ipv6uri = !0), a;
    };
  }, function (t, e, r) {
    (function (e) {
      var n = r(21),
          o = r(0)("socket.io-client:url");

      t.exports = function (t, r) {
        var i = t;
        r = r || e.location, null == t && (t = r.protocol + "//" + r.host);
        "string" == typeof t && ("/" === t.charAt(0) && (t = "/" === t.charAt(1) ? r.protocol + t : r.host + t), /^(https?|wss?):\/\//.test(t) || (o("protocol-less url %s", t), t = void 0 !== r ? r.protocol + "//" + t : "https://" + t), o("parse %s", t), i = n(t));
        i.port || (/^(http|ws)$/.test(i.protocol) ? i.port = "80" : /^(http|ws)s$/.test(i.protocol) && (i.port = "443"));
        i.path = i.path || "/";
        var s = -1 !== i.host.indexOf(":") ? "[" + i.host + "]" : i.host;
        return i.id = i.protocol + "://" + s + ":" + i.port, i.href = i.protocol + "://" + s + (r && r.port === i.port ? "" : ":" + i.port), i;
      };
    }).call(this, r(1));
  }, function (t, e, r) {
    var n = r(22),
        o = r(4),
        i = r(8),
        s = r(0)("socket.io-client");
    t.exports = e = u;
    var a = e.managers = {};

    function u(t, e) {
      "object" == typeof t && (e = t, t = void 0), e = e || {};
      var r,
          o = n(t),
          u = o.source,
          c = o.id,
          f = o.path,
          h = a[c] && f in a[c].nsps;
      return e.forceNew || e["force new connection"] || !1 === e.multiplex || h ? (s("ignoring socket cache for %s", u), r = i(u, e)) : (a[c] || (s("new io instance for %s", u), a[c] = i(u, e)), r = a[c]), o.query && !e.query && (e.query = o.query), r.socket(o.path, e);
    }

    e.protocol = o.protocol, e.connect = u, e.Manager = r(8), e.Socket = r(7);
  }, function (t, e, r) {
    t.exports = r(23);
  }]);
});